首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >vue的组件通讯

vue的组件通讯

作者头像
java攻城狮
发布2020-10-10 16:14:29
发布2020-10-10 16:14:29
5500
举报
文章被收录于专栏:个人积累个人积累

1.无任何关系的组件之前的通讯

1.1 简单情况下我们可以通过使用一个空的Vue实例作为中央事件总线,(这里也可以使用app实例,而不需要新建一个空Vue实例)

需要注意的是,调用方法放必须是在created生命周期中执行,这里可以理解为注册事件和调用事件

代码语言:javascript
复制
 <!--main.js-->
 
let bus = new Vue ()
Vue.prototype.bus = bus
组件A
代码语言:javascript
复制
<template>
   <input type="button" value ="组件通讯" @click="communication">
</template>
<script >
export default{
    data (){
        return {
            
        }
    },
    methods:{
        communication(){
            this.bus.$emit("commit" ,'这个A组价方法')
        }
    }
}
</script>
组件B
代码语言:javascript
复制
<template>
   <footer>{{text}}</footer>
</template>
<script>
   data(){
       text:""
   },
   created (){
       this.bus.$on('commit',result=>{
           this.text = result;
           console.log(result);
       });
       
   }
</script>

2.父子组件通讯

2.1 父子组件值传递

父组件

代码语言:javascript
复制
 <template>
    <son :prenMsg ="msg"><son>
 </template>
 <script>
 import son from "./sonContainer.vue"
export default {
    data(){
        return {
            msg : "这是父组件的值"
        }
    },
    components : {
        son
    }
}
 </script>

子组件

代码语言:javascript
复制
<template>
   <h3>读取到父组件的值为:{{msg}}</h3>
</template>
<script>
   data (){
       return {
           msg : this.prenMsg
       }
   },
   props : ["prenMsg"]
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.无任何关系的组件之前的通讯
    • 组件A
    • 组件B
  • 2.父子组件通讯
    • 2.1 父子组件值传递
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档