子组件传递数据到父组件(vue.js)

青旅半醒 2022-06-13 11:59 365阅读 0赞

父组件: app.vue

  1. <template>
  2. <div id="app">
  3. <img src="./assets/logo.png">
  4. <!--
  5. 父组件传递数据给子组件:
  6. 在调用组件的时候,使用v-bind将logo的值绑定为 APP.vue中定义的变量 logoMsg
  7. 然后就能将App.vue中的logoMsg的值传给header.vue 了
  8. -->
  9. <!--
  10. 子组件传递数据给父组件:
  11. 1.在父组件App.vue中,声明了一个方法getUser,用transferUser事件调用getUser方法,
  12. 获取到从子组件传递过来的参数username
  13. 2.getUser方法中的参数msg就是从子组件传递过来的参数 username
  14. -->
  15. <!--
  16. 总结:vue的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据传递。
  17. 1:父组件向子组件传递数据:
  18. 在vue中,可以使用props向子组件传递数据
  19. 1): 子组件在props中创建一个属性,用于接收父组件传过来的值
  20. 2): 父组件中注册子组件
  21. 3): 在子组件标签中添加子组件props中创建的属性
  22. 4): 把需要传给子组件的值赋给该属性
  23. 2:子组件向父组件传递数据:
  24. 子组件主要通过事件传递数据给父组件
  25. 1):子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
  26. 2):将需要传的值作为$emit的第二个参数,该值将作为实参传给相应自定义事件的方法
  27. 3):在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
  28. 3:子组件向子组件传递数据
  29. vue没有直接子组件对子组件传参的方法,建议将需要传递数据的子组件,都合并为一个组件.
  30. 如果一定需要子组件对子组件传参,可以先传到父组件,再传到子组件,为了便于开发,vue推出了一个状态管理工具vuex,
  31. 可以很方便的实现组件之间的参数传递。
  32. -->
  33. <headerDiv :logo="logoMsg" @transferuser="getUser"></headerDiv>
  34. <p>用户名为:{
  35. {user}}(我是子组件传递给父组件的数据)</p>
  36. <h1>{
  37. {msg}}</h1>
  38. <firstcomponent></firstcomponent>
  39. <router-view></router-view>
  40. </div>
  41. </template>
  42. <script>
  43. import firstcomponent from './components/firstcomponent.vue'
  44. import headerDiv from './components/header.vue'
  45. export default {
  46. name: 'app',
  47. data(){
  48. return{
  49. msg:'hellow Vue',
  50. logoMsg:'WiseWrong',
  51. user:''
  52. }
  53. },
  54. components:{firstcomponent,headerDiv},
  55. methods:{
  56. getUser:function(msg){
  57. this.user = msg;
  58. console.log(msg);
  59. }
  60. }
  61. }
  62. </script>
  63. <style>
  64. #app {
  65. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  66. -webkit-font-smoothing: antialiased;
  67. -moz-osx-font-smoothing: grayscale;
  68. text-align: center;
  69. color: #2c3e50;
  70. margin-top: 60px;
  71. }
  72. </style>

子组件:header.vue

发表评论

表情:
评论列表 (有 0 条评论,365人围观)

还没有评论,来说两句吧...

相关阅读

    相关 VUE组件组件传递数据

      在使用VUE开发的时候,有时候,我们需要通过父组件像子组件传递数据或者为了防止每个子组件都会有请求数据事件的发生,从而导致代码冗余,所以,我们可以把同一个模块下的所有子组