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钩子函数,否则,是收不到通知事件的】:

     @天才卧龙的博客

  • 相关阅读:
    [LiDAR数据模拟]系列(2) HELIOS的TLS点云模拟流程
    [LiDAR数据模拟]系列(1) HELIOS模拟平台介绍
    [漫谈科研]系列(1) 分享才能进步
    python消息队列snakemq使用总结
    关于modbus rtu一个主站与多个从站通信的一点总结
    关于使用ffmpeg的一些牢骚
    Pyqt5 实时图像滚动
    pyqt5 窗体布局
    PyQt5创建第一个窗体(正规套路)
    pyqt中使用matplotlib绘制动态曲线
  • 原文地址:https://www.cnblogs.com/chenwolong/p/vuebus.html
Copyright © 2011-2022 走看看