Vue不同组件之间相互传值

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


<html lang="zh-CN">
    <head>
        <title>title>
        <meta charset="utf-8">
        <script src="./main/vue.js">script>
    head>
    <body>
        <div id="demo">
            
            <custom-a>custom-a>
            <custom-b>custom-b>
            
        div>
    body>
    <script type="text/javascript">
    let bus = new Vue();
    Vue.component("custom-a", {
        template: '',
        methods: {
            transValue: () => bus.$emit("transValue", "hello from a")
        }
    });
    Vue.component("custom-b", {
        template: '',
        data: function() {
            return {
                msg: ""
            }
        },
        mounted() {
            bus.$on("transValue", msg => this.msg = msg)
        }
    });
    new Vue({
        el: "#demo"
    });
    script>
html>

你可能感兴趣的:(前端)