Vue组件通信

1、父组件向子组件通信
方法一:props

{{msg}}

方法二:使用$children

使用$children可以在父组件中访问子组件。比如调用子组件的方法,并传入值等。

2、子组件向父组件通信
方法一:使用vue事件

父组件向子组件传递事件方法,子组件通过$emit触发事件,回调给父组件。

<template>
    <child @msgFunc="func"></child>
</template>

<script>

import child from './child.vue';

export default {
    components: {
        child
    },
    methods: {
        func (msg) {
            console.log(msg); // ssss
        }
    }
}
</script>
<template>
    <button @click="handleClick">点我</button>
</template>

<script>
export default {
    props: {
        msg: {
            type: String,
            required: true
        }
    },
    methods () {
        handleClick () {
            //........
            this.$emit('msgFunc', 'ssss');
        }
    }
}
</script>

方法二:使用$parent

使用$parent可以访问父组件的实例,当然也就可以访问父组件的属性和方法了。

方法三: $refs
步骤1:在调用子组件的时候 可以指定ref属性

`<son ref='zhangsan'></son>`

步骤2:通过$refs
得到指定引用名称对应的组件实例

this.$refs.zhangsan

3、非父子组件、兄弟组件之间的数据传递
非父子组件通信,Vue官方推荐使用一个Vue实例作为中央事件总线。

意思就是将一个公共状态保存在一个这些组件共用的一个父组件上,这样就可以使用子组件通信父组件的方式来间接的完成通信了。
使用状态管理Vuex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值