Vue组件间通信方式
2017-10-12 18:42
681 查看
本文描述Vue组件之间通信的几种方式:
一、emit
肤浅的认识,通过emit可以实现子组件向父组件之间传值,具体请看下面样式:
在父组件中做相应绑定
<div class="main-content">
<Evaluate @emitSend="emitReceive"></Evaluate>
</div>
其中‘emitSend’是后续emit向父组件传递数据时的key,'emitReceive'为父组件接收时的函数
子组件中使用emit传递数据
this.$emit('emitSend', {
result: 'EmitDemo'
})
父组件中接收数据
emitReceive: function (val) {
console.info(val)
}
二、$refs
$refs通过给子组件做标记(xx),然后通过this.$refs.xx就可以访问子组件中的数据和函数了(数据可访问、可赋值)
父组件中为子组件做标记
<div class="main-content">
<Evaluate ref="refTest"></Evaluate>
</div>
父组件中调用子组件中内容
在子组件中数据内容:
export default {
data () {
return {
total: 10
}
},
methods: {
// 测试父组件访问子组件功能
refTests: function () {
console.log('父组件访问子组件了!!')
}
}
}
调用方式:
refDemo: function () {
console.info(this.$refs.refTest.total) // 获取子组件中值
this.$refs.refTest.total = 100 // 为子组件数据赋值
this.$refs.refTest.refTests() // 调用子组件中函数
}
三、$children和$parent
父组件访问子组件(注意子组件在父组件中的位置)(数据可访问、可赋值)
console.info(this.$children[3].total)
this.$children[3].total = 100
this.$children[3].refTests()
子组件访问父组件 (数据可访问、可赋值)
this.$parent.def_act = 'xxx'
console.info(this.$parent.def_act)
console.info(this.$parent.emitReceive(123123))
一、emit
肤浅的认识,通过emit可以实现子组件向父组件之间传值,具体请看下面样式:
在父组件中做相应绑定
<div class="main-content">
<Evaluate @emitSend="emitReceive"></Evaluate>
</div>
其中‘emitSend’是后续emit向父组件传递数据时的key,'emitReceive'为父组件接收时的函数
子组件中使用emit传递数据
this.$emit('emitSend', {
result: 'EmitDemo'
})
父组件中接收数据
emitReceive: function (val) {
console.info(val)
}
二、$refs
$refs通过给子组件做标记(xx),然后通过this.$refs.xx就可以访问子组件中的数据和函数了(数据可访问、可赋值)
父组件中为子组件做标记
<div class="main-content">
<Evaluate ref="refTest"></Evaluate>
</div>
父组件中调用子组件中内容
在子组件中数据内容:
export default {
data () {
return {
total: 10
}
},
methods: {
// 测试父组件访问子组件功能
refTests: function () {
console.log('父组件访问子组件了!!')
}
}
}
调用方式:
refDemo: function () {
console.info(this.$refs.refTest.total) // 获取子组件中值
this.$refs.refTest.total = 100 // 为子组件数据赋值
this.$refs.refTest.refTests() // 调用子组件中函数
}
三、$children和$parent
父组件访问子组件(注意子组件在父组件中的位置)(数据可访问、可赋值)
console.info(this.$children[3].total)
this.$children[3].total = 100
this.$children[3].refTests()
子组件访问父组件 (数据可访问、可赋值)
this.$parent.def_act = 'xxx'
console.info(this.$parent.def_act)
console.info(this.$parent.emitReceive(123123))
相关文章推荐
- 详解vue组件通信的三种方式
- Angularjs Controller 间通信方式、vue组件之间通信
- vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
- Vue组件通信的四种方式汇总
- vue2.0组件之间传值、通信的多种方式(干货)
- vue2.0组件之间的通信
- angular 组件通信的几种实现方式
- 父子组件通信vue.js
- Vuejs——(10)组件——父子组件通信
- Android组件之间的通信方式
- 注册vue组件的几种方式
- [js高手之路]Vue2.0基于vue-cli+webpack同级组件之间的通信教程
- vue内容分发与非vuex式组件通信
- Vue 进阶教程之:非父子组件通信方法(非Vuex)
- 21-Vue单文件组件的使用方式介绍
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- Vue父子组件之间通信
- vue2.0 组件通信
- vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例
- vue中的event bus非父子组件通信解析