vue 组件通信

父组件向子组件传值
  • 父组件用v-bind:X="AAA"
 <children-item 
    :content="item" 
    v-for="item in list" 
    :key="item.id"
  >
  </children-item>
  • 子组件用props接受 父组件传过来的值
<script>
  export default {
    name: 'ChildrenOne',
    props: ["content"],
    data() {
      return {
        message: this.content.id
      }
    }
  }
</script>
子组件向父组件传值
  1. $emit触发事件传参
  • 父组件
<children-item 
   :content="item" 
   :index="index" 
   v-for="(item, index) in list" 
   :key="item.id" 
   @delete="handleParentClick"
  >
</children-item>

methods:{
  handleParentClick(index){
    delete this.item[index]
  }
}
  • 子组件
// $emit调用注册的delete事件,,并传递index参数,触发父组件的handleParentClick
 this.$emit("delete", this.index)
  1. 父组件调用子组件定义的获取数据的方法
  const refName = this.$refs.tagLogicConfig.getCurrentRefName();// tagLogicConfig为子组件
兄弟组件传值

1.main.js创建一个事件总线,也就是中转站,作为通信的桥梁,可以在main.js中创建一个公共的bus对象(bus.js),建立中转站,实现组件与组件之间的传值(onemit 必须注册挂载在同一实例中)

let bus = new Vue()
Vue.prototype.bus = bus

注册事件

this.bus.$on("ReceiveMessage", function(item) { self.name = item; })

调用事件

this.bus.$emit("ReceiveMessage", this.message)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue 组件通信分为父组件与子组件通信、子组件与父组件通信、非父子关系组件通信三种 第一种大家都知道用props,...
    lyn911阅读 6,535评论 0 0
  • 子组件给父组件通信 如果子组件想要改变数据呢?这在vue中是不允许的,因为vue只允许单向数据传递,这时候我们可以...
    ZiTong阅读 2,286评论 0 0
  • 1. 父组件向子组件传值 父组件通过 prop 给子组件下发数据,子组件通过$emit触发事件给父组件发送消息,即...
    web30阅读 2,498评论 0 0
  • 能工摹形,巧匠窃意。必三省吾身,万不可怠惰因循。 foreword 这篇容纳了我个人所知道的一些Vue 2.x组件...
    aichisuan阅读 2,900评论 0 1
  • 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一...
    虚竹_d36e阅读 1,768评论 0 0