Vue2 组件通信写法总结

作者: 前端GoGoGo7 | 来源:发表于2017-03-08 10:59 被阅读1856次

组件通讯包括:父子组件间的通信和兄弟组件间的通信。具体有以下几种情况。

父组件传递数据给子组件

父组件使用 Prop 传递数据给子组件。

<child-component :prop1="父组件的数据1" :prop2="父组件的数据2"></child-component>

子组件只接收在子组件定义的 props的值。通过 this.prop名称 获得父组件传数据。

// 子组件
Vue.component('child-component', {
  props: ['prop1', 'prop2'], // 定义接收哪些 props
  template: '<div>{{prop1 + prop2}}</div>',
  ...
}

父组件调用子组件属性或方法

给要调用的子组件起个名字。将名字设置为子组件 rel 属性的值。

<!-- 子组件。 ref的值是组件引用的名称 -->
<child-component ref="aName"></child-component>

父组件中通过 $refs.组件名 来获得子组件,也就可以调用子组件的属性和方法了。

var child = this.$refs.aName
child.属性
child.方法()

父组件通过 $children 可以获得所有直接子组件(父组件的子组件的子组件不是直接子组件)。需要注意 $children 并不保证顺序,也不是响应式的。

Vue 在 V2.1.0 版本后增加了的 Scoped Slots 的特性。该特性支持在子组件的 slot 中用子组件的数据。详情见这里

子组件传递数据给父组件

子组件通过事件传递父组件传数据。子组件通过$emit(eventName)触发事件,父组件通过$on(eventName)监听事件。

<child-component @somesth-happen="handlerHappen"></child-component>

somesth-happen 是事件名称,handlerHappen 是触发后,父组件的处理函数。

子组件调用父组件属性或方法

子组件通过 $parent 获得父组件,通过 $root 获得最上层的组件。

兄弟组件间通信

方法1:
用事件的发布订阅来做。

var bus = new Vue()

// 组件 A 中触发事件
bus.$emit('id-selected', 1);

// 在组件 B 中监听事件
bus.$on('id-selected', function (id) {
// ...
})

方法2:
vuex 来做兄弟组件间的通信。

不推荐的方式:兄弟组件通过父组件来通信。这样做代码的耦合性比较高。

相关文章

  • Vue2 组件通信写法总结

    组件通讯包括:父子组件间的通信和兄弟组件间的通信。具体有以下几种情况。 父组件传递数据给子组件 父组件使用 Pro...

  • vue父子组件实现双向绑定实例

    Vue2的组件props通信方式 Vue2中组件props的数据流动改变只能单向流动,即只能由组件外通过DOM属性...

  • vue 面包屑

    vue-router自定义一个meta:{title:‘’} (******vue2写法) 面包屑组件贴代码! 其...

  • Vue组件

    Vue 组件的基本写法 一、其实Vue组件和Vue的界面写法很基本一样,主要区别在于子组件和父组件之间的通信问题,...

  • vue2 组件通信

    1. 父子组件通信 尽管我们可以使用1️⃣this.$parent访问父组件实例2️⃣this.$children...

  • Vue3 踩坑记,持续更新

    props的.sync在vue3中被移除 vue2中写法:组件内部: 定义 props:{name: Strin...

  • vue文档集合

    Vue2使用笔记3--父子组件的通信Vue 2.0开发实践(组件间通讯)Event Bus 在Vue中的使用vue...

  • Vue2.0+组件库总结

    Vue2.0+组件库总结 UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基...

  • vue2父子组件通信

    前言 因为vue2去除了父子组件的双向数据绑定,所以在子组件是不允许修改父组件的属性的,控制台会报如下错误: 解决...

  • angular 组件通信

    angular组件通信是很长常见的功能,现在总结下,常见通信主要用一下三种 父组件 => 子组件 子组件 => 父...

网友评论

    本文标题:Vue2 组件通信写法总结

    本文链接:https://www.haomeiwen.com/subject/aphbgttx.html