vue 子组件传值给父组件,兄弟组件传参以及实现动态组件

父组件传参给子组件

父组件:

     子组件引入父组件注册后当做标签的形式挂载

     <子组件 :xxx="传递的参数"></子组件>

子组件:
     
     利用props接收
    
      props:{}

  

vue 子组件使用$emit传参给父组件

方法一:  
    子组件: this.$emit('xxx', 参数)
   
    父组件: <子组件 @xxx='方法名($event)'></子组件>

方法二:父组件中子组件标签绑定一个ref 可以 通过this.$refs.xxx来获取

兄弟组件传参:

main.js

vue.prototype.$EventBus = new vue() // 先将其绑定在原型链上

兄1:this.$EventBus.$emit('xxx' ,参数)

兄2:this.$EventBus.$on('xxx', (message) => {

console.log(message)

})

  

动态组件:

<component :is="变量名"></component>

'变量名' 是data里的数据可以动态改变从而切换不同的组件,显示不同的组价内容


将需要变换的组件先引入共同的父组件 然后根据各自项目需求进行切换。


最后还发现了一种传参方式:provide inject


vue提供了provide inject帮助我们解决多层嵌套通信的问题,在provide中指定要传递给子孙组件的数据,子孙组件通过inject注入祖父组件传递过来的数据。