1.先看看父传子
App.vue是父组件, 被调用的HelloWorld.vue是子组件
父传子:调用子组件的时候直接赋值即可
被调用的HelloWorld.vue子组件通过props接收并赋值
这样就能看到效果,在App.vue上看到的效果
2.再来看子传父
子传父:子组件需要通过this.$emit('事件名称','需要传的值') 向父组件发射广播信息
通过点击按钮可以看到收到了子组件传来的值
3.最后看看兄弟传值(子传子)
有三种方式
- 大儿子传值到父组件,再通过父组件传值给小儿子
- 通过事件总线eventBus进行通信
- 通过vuex进行数据共享
这里仅讲通过事件总线eventBus进行通信
- 先在components下创建一个子组件About.vue
- 在App.vue里引入About.vue组件并注册调用
- 因为需要用到事件总线,所以需要在src/eventBus下创建一个eventBus.js
- 在需要用到传值的组件里引入eventBus
import eventBus from "@/eventBus/eventBus"
- 我们在HelloWorld.vue组件里面广播出一个信息
6.在About.vue组件中,通过事件总线eventBus监听HelloWorld.vue发出的信息
7.通过页面来看看效果
未点击状态下:
点击之后的状态: