vue全局混入之状态判断是否执行点击
作者:Jackson_3791
这篇文章主要介绍了vue全局混入之状态判断是否执行点击方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
vue全局混入状态判断是否执行点击
1.项目下创建 mps-ui\src\plugins\listenerClick.js
2.文件内写法
//listenerClick.js import { mapGetters } from 'vuex' export default { computed: { ...mapGetters(['leftNavStatus']) }, data() { return {} }, mounted() { if (document.getElementById('controlBtn11')) { document .getElementById('controlBtn11') .addEventListener('click', this.doSomeThings(), true) } }, methods: { doSomeThings() {} } }
3.main.js
加以下代码
// 全局监听 Vue.mixin(require('./directive/listenerClick.js').default)
全局可使用这里面的变量和方法
vue根据条件决定是否执行事件
再配合三目运算 , 可以更完善
vue中的全局混入mixin
混入提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。
一个混入对象可以包含任意组件选项。
当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
举例
// 定义一个混入对象 var myMixin = { created() { this.hello() }, methods: { hello() { console.log('hello from mixin!') } } } // main.js全局使用 Vue.mixin(myMixin)
因为是全局混入,myMixin中的数据和方法会被挂载到每个组件的实例对象上
注意:
1、当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。
比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。
2、同名钩子函数将合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。
3、值为对象的选项,例如 methods
、components
和 directives
,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。