常春岛资源网 Design By www.syssdc.com
前言
兄弟组件的信息传递有三种方式:
1.vuex 传递。
会将信息公有化。
此方法可在所有组件间传递数据。
2.建立Vue 实例模块传递数据。
Vue 实例模块会成为共用的事件触发器。
其通过事件传递的信息不回被公有化。
3.建立事件链传递数据。
一个兄弟组件通过事件将信息传给兄弟组件共有的父组件。
父组件再将信息通过属性传递给另一个兄弟组件。
若兄弟组件不是亲兄弟,而是堂兄弟,也就是他们有一个共同的爷爷,那么此方法会使程序变得繁琐。
一,vuex 传递数据
1.安装vuex
npm install vuex --save
2.store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store=new Vuex.Store({
state:{
msgFromA:'A 还没说话',
msgFromB:'B 还没说话'
},
getters:{
},
mutations:{
msgAChange(state,msg){
state.msgFromA=msg;
},
msgBChange(state,msg){
state.msgFromB=msg;
},
}
})
3.子组件A.vue
<template>
<div class="a">
<h3>A 模块</h3>
<p>B 说:{{msgFromB}}</p>
<button @click="aSay">A 把自己的信息传给B</button>
</div>
</template>
<script>
export default {
data () {
return {
msg:'我是A',
}
},
methods:{
aSay(){
this.$store.commit('msgAChange', this.msg);
}
},
computed: {
msgFromB() {
return this.$store.state.msgFromB;
}
}
}
</script>
4.子组件B.vue
<template>
<div class="b">
<h3>B 模块</h3>
<p>A 说:{{msgFromA}}</p>
<button @click="bSay">B 把自己的信息传给A</button>
</div>
</template>
<script>
export default {
data () {
return {
msg:'我是B'
}
},
methods:{
bSay(){
this.$store.commit('msgBChange', this.msg);
}
},
computed: {
msgFromA() {
return this.$store.state.msgFromA;
}
}
}
</script>
二,Vue 实例模块传递数据
1.建立Vue 实例模块 bus.js
import Vue from 'vue' export default new Vue();
2.子组件 A.vue
<template>
<div class="a">
<h3>A 模块</h3>
<p>B 说:{{msgFromB}}</p>
<button @click="aSay">A 把自己的信息传给B</button>
</div>
</template>
<script>
import Bus from '../util/Bus'
export default {
data () {
return {
msg:'我是A',
msgFromB:'B 还没说话',
}
},
created(){
let _this=this;
Bus.$on('msgBChange',function(dt){
_this.msgFromB=dt;
})
},
methods:{
aSay(){
Bus.$emit('msgAChange',this.msg);
}
}
}
</script>
3.子组件 B.vue
<template>
<div class="b">
<h3>B 模块</h3>
<p>A 说:{{msgFromA}}</p>
<button @click="bSay">B 把自己的信息传给A</button>
</div>
</template>
<script>
import Bus from '../util/Bus'
export default {
data () {
return {
msg:'我是B',
msgFromA:'A 还没说话'
}
},
created(){
let _this=this;
Bus.$on('msgAChange',function(dt){
_this.msgFromA=dt;
})
},
methods:{
bSay(){
Bus.$emit('msgBChange',this.msg);
}
}
}
</script>
三,事件链传递数据
1.父组件 C.vue
<template>
<div class="c">
<h3>事件链传递数据</h3>
<appA :msg-from-b="msgFromB" v-on:msg-a-change="aSay"></appA>
<appB :msg-from-a="msgFromA" v-on:msg-b-change="bSay"></appB>
</div>
</template>
<script>
import A from '../a3/A'
import B from '../b3/B'
export default {
data () {
return {
msgFromA:'A 还没说话',
msgFromB:'B 还没说话'
}
},
methods:{
aSay(msg){
this.msgFromA=msg;
},
bSay(msg){
this.msgFromB=msg;
},
},
components:{
appA:A,
appB:B,
}
}
</script>
2.子组件 A.vue
<template>
<div class="a">
<h3>A 模块</h3>
<p>B 说:{{msgFromB}}</p>
<button @click="aSay">A 把自己的信息传给B</button>
</div>
</template>
<script>
export default {
data () {
return {
msg:'我是A',
}
},
methods:{
aSay(){
this.$emit('msg-a-change', this.msg)
}
},
props: ['msgFromB'],
}
</script>
3.子组件 B.vue
<template>
<div class="b">
<h3>B 模块</h3>
<p>A 说:{{msgFromA}}</p>
<button @click="bSay">B 把自己的信息传给A</button>
</div>
</template>
<script>
import Bus from '../util/Bus'
export default {
data () {
return {
msg:'我是B',
}
},
methods:{
bSay(){
this.$emit('msg-b-change', this.msg)
}
},
props: ['msgFromA'],
}
</script>
总结
以上所述是小编给大家介绍的vue 兄弟组件的信息传递的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
常春岛资源网 Design By www.syssdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
常春岛资源网 Design By www.syssdc.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2025年11月11日
2025年11月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]