美文网首页
Vue封装on emit等方法

Vue封装on emit等方法

作者: 马小帅mm | 来源:发表于2018-08-15 19:15 被阅读0次
Vue中组件之间相互通信可考虑用on emit方法,而这两个方法使用时需要在同一个实例vue来调用才起作用,以下代码描述的就是用一个vue实例封装常用的方法并赋值给全局的变量,以便在任何一个组件都可调用这些方法

/assets/js/event.js

import Vue from 'vue';

const eventHub = new Vue({
    methods: {
        /* eslint-disable prefer-spread */
        on(...args) {
            this.$on.apply(this, args);
        },
        emit(...args) {
            this.$emit.apply(this, args);
        },
        off(...args) {
            this.$off.apply(this, args);
        },
        once(...args) {
            this.$once.apply(this, args);
        },
        /* eslint-disable prefer-spread */
    },
});
export const eventBusPlugin = (V) => Object.defineProperty(V.prototype, '$event', {value: eventHub, writable: true});

export default eventHub;

main.js 引用封装的event

import Vue from 'vue';
import {eventBusPlugin} from '/assets/js/event';
Vue.use(eventBusPlugin);//使用封装的event.js
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
});

在页面使用封装的event

mounted(){
    this.$event.on('change_value',id);
    this.$event.emit('change_value',1);
    ...
}

相关文章

  • Vue封装on emit等方法

    Vue中组件之间相互通信可考虑用on emit方法,而这两个方法使用时需要在同一个实例vue来调用才起作用,以下代...

  • vue emit方法

    1、父组件可以使用 props 把数据传给子组件。2、子组件可以使用 $emit 触发父组件的自定义事件。 vm....

  • vue2.0传值方法的归纳

    使用vue2.0做过几个项目,传值,最初只会emit的方法,导致整个项目都是emit,而且项目没有合理的划分,有些...

  • Vue的$emit方法

    vm.$emit(eventName,[...args]) 触发当前实例上的事件。附加参数都会传给监听器回调。 只...

  • VUE $on/$emit实现

    这个文章介绍如何实现 vue的$on $emit $once $off 。 不懂$on $emit $once $...

  • Vue.js+OpenLayers 3、图层切换控制

    一、封装切换图层的方法 initMap.vue 二、调用方法 MapMain.vue

  • 2019-04-24

    html HTML 标签 css flex vue vm.$emit用法 $emit 绑定一...

  • 原生websocket封装

    对原生websocket的使用封装: 支持发生错误后的自动重连 支持on与emit方法 暴露open,close,...

  • Vue组件通信方式2 - 自定义事件

    父组件 App.vue 子组件 components/Emit.vue

  • 父子组件传值

    1.vue的$emit()的用法:

网友评论

      本文标题:Vue封装on emit等方法

      本文链接:https://www.haomeiwen.com/subject/khxgbftx.html