兄弟组件传值(草稿)

<!-- vue兄弟组件 间传值

借助中央事件总线

1:在外部 建一个Bus.js,放在 assets文件夹下

Bus.js:
import Vue from 'Vue';
//平常写 都是 import Vue from 'vue'

export default new Vue;
//创建 空的Bus 组件
//vue-music App.vue 是
export default {
    components:{
    组件名
}
}

2.两个组件作为  子组件 被同一个 父组件所引用,在 同一个 页面显示
这个是 父组件:

import b1 from './b1.vue'

import b2 from './b2.vue'

components:{
    b1,
    b2
}

<div class="hello">
    <b1></b1>
    <b2></b2>
</div>

3.两个兄弟组件间的语法:

组件1 就当是 组件b1

b1 定义一个发送数据的 方法,

<button @click="sendMsg">向组件传值</button>

methods:{
    sendMsg(){
    Bus.$emit('send', this.a++)
}
}

点击触发 sendMsg 函数,函数主体,通过 Bus中央事件总线  用$emit发送 一个send事件 没错,是 send 事件
sendMsg  是点击事件  send是 发送出去,需要其他组件监听的事件

4.组件2 就当是  组件b2

组件2 在 data(){} 中定义一个变量 这个变量来接收 b1传过来的值(this.a++  得到的值)

在created 生命周期中,通过 Bus中央事件总线  用$on监听  组件1 中 发送的send事件,用一个 带参数的  回调函数,接收
传过来的 值,参数 就是 传的值,把 值赋给 当前组件的变量

data(){
    return(){
    msg:"初始值"
    }                
},
created(){
    var self=this
    Bus.$on('send', function(val) {
    self.msg = val;
})
}

别忘了 在 b1、b2 中引入 bus.js
import Bus from './bus.js'

//组件 可以 导入 js,( 不过 导入的方式……  要给js 文件 起别名吗 )
js 也可以导入 组件(看 第一步中 bus.js)

总结:
通常 index.html 只有
<body><div id="app"></div></body>( 自动生成,不用写 什么)
main.js 中 有#app 的 vue实例
new Vue({
    el:'#app',
    router,
    render:h=>h(App)
})
new Vue({})  里 这三项 是肯定的
再一项项分析
先分析 App.vue  
它是 整个h5的 布局
vue-cms 分三部分,而 vue-music 分四部分
言归正传 还是讲 vue-music
vue-music 需要切换的 就是 <router-view>
再是讲 router

呵呵,以上 都跑远了

父组件 传值 给 子组件:

 -->


1.创建 Bus.js
import Vue from 'vue'

export default new Vue
2.父组件 引用 b1、b2组件
import b1 from './b1.vue'
import b2 from './b2.vue'

components:{
    b1,
    b2
}
3.b1
import  bus from 'Bus.js'

import  bus from './Bus'

<button @click="sendMsg"></button>

methods:{
    sendMsg(){
    bus.$emit('send', this.a++)
}
}
4.b2
import Bus from './bus.js'
如果 bus.js 这样写
import Vue from 'vue'
export default new Vue

import Bus from './bus'
如果 bus.js 这样写
import Vue from 'vue'
const bus = new Vue()
export default bus

 

别看,可能 都是错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值