zoukankan      html  css  js  c++  java
  • Vue公交车-Bus,父子传值,子子传值,子父传值

    十年河东,十年河西,莫欺少年穷

    学无止境,精益求精

    Vue公交车-Bus,父子传值,子子传值,子父传值,功能非常强悍。

    1、引入公交车

    npm install vue-bus

    2、main.js 中全局注册公交车

    import Vue from 'vue'
    import App from './App'
    import router from './router'
    import Antd from 'ant-design-vue';/* 全局引入ant */
    import 'ant-design-vue/dist/antd.css'; /* 全局引入ant样式文件*/
    import VueBus from 'vue-bus';  /* 全局引入vue公交车 用于子子组件传值*/
    
    import components from './components/componentsRegist.js'  /* 全局引入组件注册JS*/
    
    import axios from './utils/request';
    
    Vue.config.productionTip = false
    Vue.use(Antd); /* 使用antd */
    
    Vue.prototype.$axios = axios /* axios */
    Vue.use(components);  /* 使用自定义组件 */
    Vue.use(VueBus); /* 公交车 */
    new Vue({ el: '#app', router, components: { App }, template: '<App/>' })

    新建 一个vue页面,点击按钮,执行公交车通知事件,如下

    <template>
      <div>
        <a-button type="danger" @click="buscilck"> 公交车 </a-button>
      </div>
    </template>
    <script>
    export default {
      created() {},
      data() {
        return {};
      },
      methods: {
        buscilck() {
          let that = this;
          let info={title:"请注意,我要超车了!"}
          that.$bus.emit("saveiotinfo",info);
        },
      },
    };
    </script>

    页面二接收公交车的通知事件,如下

    <template>
      <div>
      
      </div>
    </template>
    <script>
    export default {
      created() {
        let that = this;
        that.$bus.on("saveiotinfo", function (params) {
            console.log("我是公交车2,收到您的鸣笛:"+params.title)
        });
      },
      data() {
        return {
          businfo: {},
        };
      },
      methods: {
      },
    };
    </script>
    </script>

    页面三接收公交车事件,如下

    <template>
      <div>
      </div>
    </template>
    <script>
    export default {
      created() {
        let that = this;
        that.$bus.on("saveiotinfo", function (params) {
          console.log("我是公交车3,收到您的鸣笛:"+params.title)
        });
      },
      data() {
        return {
          businfo: {},
        };
      },
      methods: {
      },
    };
    </script>
    </script>

    执行结果【必须先点击页面二和页面三,用于初始化created钩子函数,否则,是收不到通知事件的】:

     @天才卧龙的博客

  • 相关阅读:
    深入理解Java:注解(Annotation)自定义注解入门
    Java基础之理解Annotation
    junit常用注解详细说明
    能判断是电脑端还是手机端的javascript
    Ext.js多文件选择上传,
    StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
    FileItem类的常用方法(关于文件上传的)
    js保留小数点后面几位的方法
    如何将div中的内容设置为空同时还要保留div本身
    使用html中的<input>标签上传多个文件(转)
  • 原文地址:https://www.cnblogs.com/chenwolong/p/vuebus.html
Copyright © 2011-2022 走看看