Vue不同组件之间相互传值

来源:互联网 发布:怎样推广淘宝网店 编辑:程序博客网 时间:2024/06/06 02:57

使用一个空Vue实例来进行传值,通过$emit,$on即可。

<!DOCTYPE html><html lang="zh-CN">    <head>        <title></title>        <meta charset="utf-8">        <script src="./main/vue.js"></script>    </head>    <body>        <div id="demo">            <!-- test code -->            <custom-a></custom-a>            <custom-b></custom-b>            <!-- test code -->        </div>    </body>    <script type="text/javascript">    let bus = new Vue();    Vue.component("custom-a", {        template: '<button @click="transValue">Click</button>',        methods: {            transValue: () => bus.$emit("transValue", "hello from a")        }    });    Vue.component("custom-b", {        template: '<input :value="msg">',        data: function() {            return {                msg: ""            }        },        mounted() {            bus.$on("transValue", msg => this.msg = msg)        }    });    new Vue({        el: "#demo"    });    </script></html>
原创粉丝点击