• Vue 全局事件总线


    全局事件总线

    事件总线其实就是vm或vc. 可以在任意组件之间通信。
    具体实现是在beforeCreate里面将vm挂到Vue.prototype上去,因为VueComponent.prototype.proto === Vue.prototype
    在组件的beforeDestory中要把事件总线订阅的事件解绑

    案例

    注册事件总线

    import Vue from 'vue'
    import App from './App.vue'
    
    // 关闭Vue的生产提示
    Vue.config.productionTip = false
    
    new Vue({
      render: h => h(App),
      beforeCreate() {
        // 注册事件总线
        Vue.prototype.$eventbus = this
      }
    }).$mount('#app')
    
    

    App.vue

    <script>
    export default {
      name: "App",
      components: { Child },
      created() {
        this.$eventbus.$on("toogleTodo", (index) => {
          this.toogleTodo(index);
        });
      },
      beforeDestroy(){
        this.$eventbus.$off("toogleTodo")
      }
    };
    </script>
    

    Child.vue

    <template>
      <li class="item">
          <input type="checkbox"  :checked="item.done" @click="toggleTask" />{{ item.title }}</li>
    </template>
    
    <script>
    export default {
      props: ["item","index"],
      methods:{
          toggleTask(){
              this.$eventbus.$emit('toogleTodo',this.index)
          }
      }
    };
    </script>
    
  • 相关阅读:
    静态测试
    babel
    chorme
    @rollup/pluginalias
    ie9 XMLHttpRequest跨域问题处理
    wget
    Unicode
    corejs
    n 切换node报错
    javascript 学习
  • 原文地址:https://www.cnblogs.com/ltfxy/p/15884725.html
Copyright © 2020-2023  润新知