返回首页 | 注册送体验金88送现金

合作共赢、快速高效、优质的网站建设提供商

更多精品源码-尽在织梦模板-www.moke8.com

网站开发详解Vue2中组件间通讯的处理全计划

时间:2017-08-17 编辑:admin

在Vue中组件是完成模块化研制的主要内容,而组件的通讯更是vue数据驱动的魂灵,下面这篇文章将给我介绍关于Vue2组件间通讯的相关内容,下面话不多说,来一同看看详细的介绍。

组件通讯包含:父子组件间的通讯和兄弟组件间的通讯。在组件化体系构建中,组件间通讯必不可少的。

父组件-- 子组件

1. 特点设置

父组件要害代码如下:

 template 
 Child :child-msg="msg" /Child 
 /template 

子组件要害代码如下:

export default {
 name: 'child',
 props: {
 child-msg: String
};

child-msg 为父组件给子组件设置的额定特点值,特点值需在子组件中设置props,子组件中可直接运用child-msg变量。

2. 子组件调用父组件

子组件经过 $parent 取得父组件,经过 $root 取得最上层的组件。

子组件-- 父组件

1. 发送事情/监听事情

子组件中某函数内发送事情:

this.$emit('toparentevent', 'data');

父组件监听事情:

 Child :msg="msg" @toparentevent="todo()" /Child 

toparentevent 为子组件自界说发送事情称号,父组件中@toparentevent为监听事情,todo为父组件处理挑选。

2. 父组件直接获取子组件特点或挑选

给要调用的子组件起个姓名。将姓名设置为子组件 ref 特点的值。

 !-- 子组件。 ref的值是组件引证的称号 -- 
 child-component ref="aName" /child-component 

父组件中经过 $refs.组件名 来取得子组件,也就能够调用子组件的特点和挑选了。

var child = this.$refs.aName
child.特点
child.挑选()

父组件经过 $children 能够取得一切直接子组件。需求留意 $children 并不确保次序,也不是呼应式的。

Bus中心通讯

现在中心通讯是处理兄弟间通讯,祖父祖孙间通讯的最佳挑选,不只限于此,也能够处理父组件子组件间的彼此通讯。如下图:

各组件可自己界说好组件内接纳外部组件的音讯事情即可,不必理睬是哪个组件发过来;而关于发送事情的组件,亦不必理睬这个事情究竟怎样发送给我们需求发送的组件。

先设置Bus

//bus.php 
import Vue from 'vue'
export default new Vue();

组件内监听事情:

import bus from '@/bu*******port default {
 name: 'childa',
 methods: {
 created() {
 bus.$on('childa-message', function(data) {
 console.log('I get it');
};

发送事情的组件:

import bus from '@/bus';
//挑选内履行下面动作
bus.$emit('childa-message', this.data);

Bus中心通讯的计划各种情况下都可用,比较便利,详细内涵原理后续更新阐明。


浏览:

网站建设

流程

    网站建设流程