• Vue非父子组件传值方式。


    项目结构:

    1.事件总线方式:

    ①.先建util目录,然后再目录里新建bus.js文件,bus.js文件内容:

    //非父子组件传值之事件总线。
    //先建一个bus.js文件,然后在需要传递信息的地方引入。
    //import bus from './bus.js'
    //类似C#中定义一个类,然后实例化这个类,然后引用。
    import Vue from 'vue'
    
    export default new Vue;

    ②.在需要传递信息的组件中引入bus.js,这里是从APP.vue组件向Child.vue组件传递信息,然后要发送数据到Child.vue组件中。

    传递信息使用 bus.$emit("方法名"),接收信息的组件中使用bus.$on("方法名",callback)监听
    <template>
      <div id="app">
       <button @click="sendmsg">bus走你</button>
       <m-parent></m-parent>
       <router-view></router-view>
        </div>
        <!-- <router-view/> -->
    </template>
    <script>
    //引入组件
    import MParent from './views/Parent'
    
    //从app.vue 往 Child.vue中传递信息。
    import bus from './util/bus';
    export default({
     components: {
       MParent,//注册组件。
     },
     methods: {
       sendmsg() {
         bus.$emit('appmsg','I am from App.vue');
       }
     },
    })
    </script>
    <style>
    
    </style>

    ③.在Child.vue组件中引入bus.js,然后监听bus.$on();

    <template>
        <div>
            <h3>child</h3>
            <h4>{{msg}}</h4>
            <h6>{{childmsg}}</h6>
            <button @click="sendmsg">传给父亲</button>
        </div>
    </template>
    
    <script>
    import bus from '../util/bus';
        export default {
            //使用 props 属性接收父组件传过来的值。
            props: {
                msg: {
                    type: String,
                    default: ''
                },
            },
            methods: {
                sendmsg() {
                    this.$emit('showmsg','from child msg');//触发父组件监听的showmsg(),并且传值。
                }
            },
            data() {
                return {
                    childmsg: ''
                }
            },
            mounted () {
                bus.$on('appmsg',(val)=>{
                    this.childmsg=val;
                });
            },
        }
    </script>
    
    <style  scoped>
    
    </style>
    View Code
  • 相关阅读:
    本地网络硬盘之在本地使用MsnSkydriver
    编写代码生成器自动赋值方法
    向Html动态加载内容(动态加载脚本,css)
    巧用asp.net(1):自动生成页面头部信息
    Ruby On Rails各版本需注意
    添加强命名程序集
    Javascript写入Html
    SQL Function (SQL自定义函数)
    (译)SDL.NET Surfaces 相关介绍
    用CSS设置Table的细边框的几种方法
  • 原文地址:https://www.cnblogs.com/longdb/p/14682498.html
Copyright © 2020-2023  润新知