vue父子传值,兄弟传值,子父传值详解

2022-04-15 0 510
目录
  • 一、父组件向子组件传值
    • 1.父组件.vue
    • 2.子组件.vue
  • 二、兄弟组件间传值还可以通过中间件Bus
    • 1.A组件.js
    • 2.B组件.js
  • 三、子组件向父组件传值
    • 1.父组件.js
    • 2.子组件.js
  • 总结:

    一、父组件向子组件传值

    1.父组件.vue

    // 父组件中
    <template>
        <div>
            <Child ref="child" :title="value"/>
        </div>
    </template>    
    <script>
    export default {
        data() {
        	return {
        		value: 'hello world!'
        	}
        }
    }
    </script>
    

    2.子组件.vue

    // 父组件中
    <template>
        <div>
           <span>{{title}}</span>    
        </div>
    </template>    
    <script>
    export default {
      props: {
        title: {
          	type: String,
          	default: ''
        }
      }
    }
    </script>
    

    //title值为’hello world!

    二、兄弟组件间传值还可以通过中间件Bus

    $emit 传值

    $on 接收

    $off 删除传输事件

    1.A组件.js

    this.$bus.$emit("flag",true)
    

    2.B组件.js

    mounted() {
        this.$bus.$off('flag')
        this.$bus.$on('flag', data=> {
          this.flag= data
        })
      }
    

    三、子组件向父组件传值

    1.父组件.js

    <template>
        <div>
            <Child ref="child" @getTitle="getTitle"/>
        </div>
    </template>  
    <script>
    import Child from './components/Child'
    export default {
      components: {
      	Child 
      },
      data() {
        return {
        }
      },
      method:{
      	getTitle(data){
    		console.log(data)
    	}
      }
    }
    </script>
    

    打印结果为 hello xuliting

    2.子组件.js

    <template>
        <div>
           <span>{{title}}</span> 
        </div>
    </template>    
    <script>
    export default {
      data() {
        return {
        title: 'hello xuliting'
        }
      },
      mounted(){
        this.getFun()
      },
      method:{
        getFun(){
         this.$emit("getTiltle",this.title)
        }
      }
    }
    </script>
    

    总结:

    组件间也可以通过传递方法从而解决。例如父组件为A,子组件有B和C。

    父组件A调用子组件B的方法定义为aFun,把aFun传递给子组件C即可

    这是在父组件中的组件C进行方法传递

    <C :a-fun="aFun" />
    

    引用的则是在组件C,通过props

    props: {
        aFun: {
          type: Function,
          default: () => function() {}
        }
      }
    

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注NICE源码的更多内容!

    免责声明:
    1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

    2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
    如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
    如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

    NICE源码网 JavaScript vue父子传值,兄弟传值,子父传值详解 https://www.niceym.com/18897.html