vue——组件通信

父传子

父传递:自定义属性形式进行数据绑定
在父组件的模版中对子组件标签进行属性绑定

<child :message="hello"></child>        

子接收:props
在子组件中使用props属性显式地接收

props: ['message'],//然后即可使用this.message使用。

子传父:
tip:需要事件来触发完成
子组件:this.$emit('自定义的方法名称', 空/数据)

methods: {
    test() {
       this.$emit('funcName',data)
    },
}

父组件:在子组件名称(标签)上,绑定“子组件自定义的方法名称”;然后在此组件中的methods里面定义回调函数

<child @funcName='sayHello'></child>
<script>
methods: {
  sayHello (val) {
      console.log(val)
  }
}
</script>

兄弟传递:
子组件:this.$emit('自定义的方法名称', 空/数据)
父组件:在子组件名称(标签)上,绑定“子组件自定义的方法名称”;然后在此组件中的methods里面定义回调函数;再把此组件获得的数据通过父传子的方式传递给子组件即可
参考:https://blog.csdn.net/qq_36407748/article/details/80150137

A是父组件,B是A的子集,C是B的子集,A传数据给C;用$attrs$listeners
在A的页面上的B组件上绑定要传递的数据

<b :messagec="messagec"></b>
data() {
  return {
      messagec:'hello c' //传递给c组件的数据
  }
}

B页面

<c v-bind="$attrs" v-on="$listeners"></c> 

C页面

<input type="text" v-model="$attrs.messagec" @input="passCData($attrs.messagec)"> </div>
//通过`$attrs`和`$listeners` 传递过来的数据保存在全局变量`$listeners`上 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考自vue.js 官方文档 如果你使用 Vue 进行开发的话,你不得不了解的一项就是 Vue 的组件(Compo...
    寿木阅读 390评论 0 2
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,082评论 0 29
  • 组件通信各种情况总结VUE是以数据驱动的MVVM框架,又是模块化开发,所以各个组件间的通信传递数据非常重要,在项目...
    流年_338f阅读 591评论 0 2
  • 1.父组件传递数据给子组件 思路:在父组件中定义inputValue属性,然后再props接收参数注意此方法是传递...
    黄鹤你不是人阅读 312评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139