码迷,mamicode.com
首页 > Web开发 > 详细

vue.js组件之j间的通讯三,通过单一事件来管理组件通讯

时间:2019-02-03 01:02:34      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:通过   body   func   app1   bind   methods   fun   展示   组件   

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
    </head>
    <body>
        <div id="app1">
            <com-a></com-a>
            <com-b></com-b>
            <com-c></com-c>    
        </div>
        
    </body>
    <script>
        var A={
            template:`
                <div>
                    <span>我是组件A</span> -->{{a}}
                    <input type ="button" value ="把A数据传给C">
                </div>
            `,
            data(){
                return{
                    a:我是a数据
                }
            }
        };
        var B={
            template:`
                <div>
                    <span>我是组件B</span> -->{{b}}
                    <input type ="button" value ="把B数据传给C">
                </div>
            `,
            data(){
                return{
                    b:我是b数据
                }
            }
            
        };
        var C={
            template:`
                <div>
                    <span>我是组件C</span> -->{{c}}
                    <input type ="button" value ="把C数据传给A">
                </div>
            `,
            data(){
                return{
                    c:我是c数据
                }
            }
        };
        
        var app =new Vue({
            el:"#app1",
            data:{
                
                    a:我是父组件的数据
                
                
                
            },
            /*//子组件,利用props进行数据传递:*/
            components:{
                com-a:A,
                com-b:B,
                com-c:C
            }
        });    
    </script>
</html>

案例基础页面:

展示结果:

技术图片

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
    </head>
    <body>
        <div id="app1">
            <com-a></com-a>
            <com-b></com-b>
            <com-c></com-c>    
        </div>
        
    </body>
    <script>
        /*全局的*/
        var vm =new Vue();
        
        var A={
            template:`
                <div>
                    <span>我是组件A</span> -->{{a}}
                    <input type ="button" value ="把A数据传给B" @click="send">
                </div>
            `,
            data(){
                return{
                    a:我是a数据
                }
            },
            methods:{
                send(){
                    vm.$emit(a-msg,this.a)
                }
            }
        };
        var B={
            template:`
                <div>
                    <span>我是组件B</span> -->{{b}}
                    <input type ="button" value ="把B数据传给C">
                </div>
            `,
            mounted(){
                vm.$on(a-msg,function(a){
                    alert(a);
                    this.b =a;
                    /*将this绑定给当前函数,引用当前函数*/
                }.bind(this));
            },
            data(){
                return{
                    b:我是b数据
                }
            }
            
        };
        var C={
            template:`
                <div>
                    <span>我是组件C</span> -->{{c}}
                    <input type ="button" value ="把C数据传给A">
                </div>
            `,
            data(){
                return{
                    c:我是c数据
                }
            }
        };
        
        var app =new Vue({
            el:"#app1",
            data:{
                
                    a:我是父组件的数据
                
                
                
            },
            /*//子组件,利用props进行数据传递:*/
            components:{
                com-a:A,
                com-b:B,
                com-c:C
            }
        });    
    </script>
</html>

之前结果:

技术图片

传递之后的值:

技术图片

 

vue.js组件之j间的通讯三,通过单一事件来管理组件通讯

标签:通过   body   func   app1   bind   methods   fun   展示   组件   

原文地址:https://www.cnblogs.com/xiufengchen/p/10349480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!