zoukankan      html  css  js  c++  java
  • Vue中独立组件之间数据交互

    独立组件之间数据交互:通过自定义事件

    组件A中的【数据】,传递给组件B

    1.创建组件A,组件B
    2.组件B在实例创建完成时就开始监听事件【等待接收数据】:钩子
    3.组件A中触发事件,发送数据

    注意:接收数据的函数,一定要绑定在生命周期创建钩子上(created:function(){})
    1、引入相应的文件

    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>


    2、Dom文件

    <div id="app">
        <comp-a></comp-a>
        <comp-b></comp-b>
    </div>

    3、js的相关内容

     1 <script>
     2     Vue.component("compA", {
     3         template:"<button @click='test'>组件A中,触发事件</button>",
     4         methods:{
     5             test:function() {
     6                 bus.$emit("myevent", this.username);//$emit("事件名称",[参数列表])通过$emit在代码中触发一个事件
     7             }
     8         },
     9         data:function() {
    10             return {
    11                 username:"jerry"
    12             }
    13         }
    14     });
    15     Vue.component("compB", {
    16         template:"<h2>{{ds}}</h2>",
    17         created:function() {/*这是实例创建完成时自动调用的生命周期钩子*/
    18             var that = this;
    19             bus.$on("myevent", function(msg) {//通过$on("事件名称",function(参数列表){})来监听一个事件是否进行处理
    20                 // 接收到数据之后,就可以更新组件中使用的数据,然后展示到页面上
    21                 console.log("接收到其他组件传递的数据:" + msg);
    22                 that.ds = msg;
    23             });
    24         },
    25         data:function() {
    26             return {
    27                 ds:"hello"
    28             }
    29         }
    30     });
    31 
    32     /*定义一个消息分发中间件*/
    33     var bus = new Vue();
    34 
    35     var vm = new Vue({
    36         el:"#app"
    37     });
    38 </script>
  • 相关阅读:
    使用Beautiful Soup扒取指定标题
    平时笔记
    2017年暑期大数据培训小记
    ZoomIt的使用方法
    ASP.NET使用富文本控件KindEditor(一步到位,亲测有效)
    ASP.NET使用Ajax返回Json对象
    Python简易爬虫
    Class.forName()用法详解
    【4-1】js函数、事件、补充知识
    【3-30】document获取、事件、标记样式
  • 原文地址:https://www.cnblogs.com/Sarah119/p/6568454.html
Copyright © 2011-2022 走看看