vue兄组件之间进行传值

vue兄组件之间进行传值

今天在此记录一下我在学习vue时遇到的相对有点不太容易理解的地方-兄弟组件之间进行传值的过程,在此发表一下我的理解和记录学习的过程。

--------------------------------------------------------------

  1. 首先需要写入一个事件管理组件
  //事件中心,兄弟组件之间传值全靠它
    var hub=new Vue();
  1. 兄弟组件之间传值需要有监听事件和销毁事件
// appent为监听事件名称,兄弟组件用这个名称调用,val为兄弟组件传过来的值
hub.$on('txt-event',(val)=>{
  this.bum+=val
  })//监听事件
hub.$off('appent')//销毁事件

3.触发事件

// 1相当于实参,传递给兄弟组件的val相当于形参进行接收,调用兄弟监听事件名
hub.$emit('text-event',1)

4.以代码为例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
<div id="app">
    <test-tom></test-tom>
    <text-jerry></text-jerry>
</div>
</body>
<script>
    //事件中心,兄弟组件之间传值全靠它
    var hub=new Vue();
    Vue.component('test-tom',{
        data:function () {
            return{
                bum:0,
                num:5
            }
        },
        template:`
            <div>
            <div>TOM:{{bum}}</div>
            <button @click="handlets">点击</button>
</div>
        `,
        methods: {
            handlets:function () {
                hub.$emit('text-event',this.num)
            }
        },
        mounted:function () {
        //监听事件
            hub.$on('txt-event',(val)=>{
                this.bum+=val
            })
        }
    })
    Vue.component('text-jerry',{
        data:function () {
            return{
                bum:0,
                arrts:10
            }
        },
        template:`
            <div>
            <div>JERRY:{{bum}}</div>
            <button @click="handles">点击</button>
</div>
        `,
        methods: {
            handles:function () {
                hub.$emit('txt-event',this.arrts)
            }
        },
        mounted:function () {
            //监听事件
            hub.$on('text-event',(val)=>{
                this.bum+=val
            })
        }
    })
    new Vue({
        el:'#app',
        data:{

        },
        methods: {

        }
    })
</script>
</html>

首先先定义好各自的监听事件的名字供兄弟组件传值调用,让兄弟组件控制自己的值的变换的一个效果,需要注意的是监听事件需要写道钩子函数mounted中!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值