vue的父子组件间传值以及非父子间传值

Posted xxcnhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue的父子组件间传值以及非父子间传值相关的知识,希望对你有一定的参考价值。

Vue组件间的传值方式:

 父传子

子传父

非父子间传值

 

1.首先父组件传值给子组件,使用bind绑定属性,然后在子组件用props接收属性值.

//父组件
<template>
  <input  type="text" />
  <br/>
  <child :inputValue="inputValue"></child>
</template>

<script>
 import child from ‘./Child/child‘  
 export default
   data()
      return
       inputValue:‘我是父组件‘
     
   ,
   components:
      child
   

 

</script>
//子组件child

<template>
    <span> inputValue </span>
<template>

<script>

  export default 
     props:
         inputValue:‘‘
      
   


</script>

 

2.子组件传值给父组件,子组件通过绑定点击事件提交this.$emit()方法传值,父组件通过监听来操作传过来的值.

//子组件
<template>
   <div> 
      <span>childValue</span>
<br> <input type="text" @click="childClick"> </div> <template> <script> export default data() childValue:‘我是子组件‘ , methods: childClick() this.$emit(‘sub‘,this.childValue)//第一个参数是父组件监听的函数 ,第二个参数是要传递给父组件的值. </script>

.

//父组件
<template> <span>name</span> <br> <child @sub="parentEvent"></child> </template> <script> import child from ‘./child‘ export default components: child , data() return Value:‘‘ , methods: parentEvent(data) this.Value=data; </script>

 

3.非父子组件间的传值

通过公共eventBus.js来传值,定义一个新的vue实例专门用来传递数据.

//eventBus.js
import Vue from ‘vue‘;
export default new Vue();
//组件A
<template>
     <button @click="emitToB"></button>
</template>

<script>
 import eventBus from ‘./eventBus‘
  export default
    data()
      return
      
    ,
    methods:
       emitToB()
         eventBus.$emit(‘eventA‘,"我是A传给B的值");  
      
     

  


</script>
//组件B
<template>
   <span>title</span>
</template>

<script>
import eventBus from ‘./eventBus‘
 export default
   data()
      return 
       title:‘‘
     
   ,    
  mounted()
    this. getA();
 ,
 methods:
   var that=this;
   getA()
      eventBus.$on(‘eventA‘,function(data)
           that.title=data;
     )   
   
   

 

</script>

 

以上是关于vue的父子组件间传值以及非父子间传值的主要内容,如果未能解决你的问题,请参考以下文章

Vue中组件间传值常用的几种方式

bus(总线传值-非父子间传值)

自定义组件,父子间传值

Vue3父子组件间传参通信

Vue父子组件传值以及父调子方法子调父方法

angular父子组件之间的传值