vue组件间的传参

79 阅读1分钟

image.png

(1)、父子组件通信可以通过props和$emit

例子:

image.png image.png (2)、子组件可以通过$root接收父组件的数据或修改数据(响应式),也可以操作跟组件的函数

例子:

image.png image.png

(3)、子组件可以通过$parent接收或修改父组件的元素(响应式)和函数

例子: 父组件:

image.png

子组件: image.png

(4)、父组件可以用$refs访问子组件数据或函数(响应式)

例子:

image.png (5) 、兄弟组件间通信可以使用eventBus(事件总线) 先创建一个eventBus.js

import Vue from 'vue'
export const EventBus = new Vue()

然后在home组件触发addFC函数发送事件

  methods: {
    addFC(){
      console.log(EventBus);
      EventBus.$emit('add', 0);
    }
  }

在user组件接收

  mounted() {
    EventBus.$on('add',(res)=>{
      console.log('add:::',res);
    })
  },

(6)、嵌套多层的子组件与父组件通信可以使用provide

注意:provie不是响应式的,每个子组件调用的provie都是独立的

例子:

image.png