Vue如何使用混合Mixins和插件开发

官网:混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。 个人:混入就是用来对vue组件中的公共部分,包括数据对象、钩子函数、方法等所有选项,进行提取封装,以达到代码的复用,混合用处挺大的,然我们来看看实际用法。

基础用法

// 这是在main.js根文件中使用,在组中使用也是一样
import Vue from ‘vue’;
var mixin = {
data() {
return {
name: ‘www.vipbic.com’,
author: ‘羊先生’
}
},
created: function() {
console.log(‘Website:’ + this.name)
},
methods: {
foo: function() {
console.log(‘作者:’ + this.author)
},
conflicting: function() {
console.log(‘from mixin’)
}
}
}

new Vue({
mixins: [mixin],
render: h => h(App),
created() {
let option = this.$options.doNotInit
console.log(‘option:’, );
this.foo()
}
}).$mount(‘#app’)

// 在组建中使用

var mixin = {
data() {
return {
name: ‘www.vipbic.com’,
author: ‘羊先生’
}
},
created: function() {
console.log(‘Website:’ + this.name)
},
methods: {
foo: function() {
console.log(‘作者:’ + this.author)
}
}
}
export default {
mixins: [mixin],
created(){
this.foo()
}
}

效果如下,都一样,可以看出混合mixins中的created高于组件created执行优先级

image.png

全局注册

main.js中直接注册

import Vue from ‘vue’;
var mixin = {
data() {
return {
name: ‘www.vipbic.com’,
author: ‘羊先生’
}
},
created: function() {
console.log(‘Website:’ + this.name)
},
methods: {
foo: function() {
console.log(‘作者:’ + this.author)
}
}
}

Vue.mixin(mixin)
new Vue({
render: h => h(App)
}).$mount(‘#app’)

效果如下,我们先不调用,看看控制台是否有打印结果,可以发现我们并未调用,就打印了两次,按照大家常规考虑可能会想到执行一次,是正常的,即初始化一次,但却执行了两次

image.png

如何解决执行两次

我在网上看到都是这么做的,都说是从官网上看到的,但是我在官网上并没有看到,不过的确能解决问题

var mixin = {
data() {
return {
name: ‘www.vipbic.com’,
author: ‘羊先生’
}
},
created: function() {
let option = this.$options.doNotInit;
console.log(option) // 第一次执行 true 第二次为 undefined
if (!option) {
// 可以放置一些你的逻辑,比如一开始就要调用的方法
console.log(‘Website:’ + this.name)
}
},
methods: {
foo: function() {
console.log(‘作者:’ + this.author)
},
}
}

Vue.mixin(mixin);
new Vue({
doNotInit: true, // 添加一个状态
render: h => h(App),
}).$mount(‘#app’)

效果如下

image.png

春节“嘴炮英雄”图鉴

今年的春节有些特殊

新型冠状病毒的出现

打乱了大家的生活,也扰乱了很多人的计划

整个春节

大家的目光都集中在疫情防控上面

以前我们总会收到父母发来的健康提醒

告诉我们要注意这个小心那个的

现在我们都充当起保护父母劝导长辈的角色

从劝导退订年夜饭 到 戴口罩 再到 “一动不动”

从以前一过年就往出溜

到现在“死守家门,谁也不让出去”

因为家人,真的都是我们最重要的人

我想要保护你们,我一定要保护你们。

2019忙碌了一年

现在有这样一个机会

每天在家 温度正好

有食物有手机有wifi

最重要的是家人在身边

我爱你们

– End –

别抢双黄连了!

人民日报特别提醒:请勿抢购自行服用双黄连口服液。

对于任何科研、医疗的最新发现,请大家有怀着一颗敬畏之心。

我觉得上海药物所的那句话说得特别好:科学的事情我们不想说得太过。

抑制并不等于预防和治疗!
@人民日报 特别提醒:请勿抢购自行服用双黄连口服液

31日新华社记者从中国科学院上海药物所获悉,该所和武汉病毒所联合研究初步发现,中成药双黄连口服液可抑制新型冠状病毒。目前该发现仍是初步研究,该药已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究,对病人如何有效还要做大量的实验。

特别提醒:按照@世界卫生组织 ,到目前为止,还没有用于预防和治疗新型冠状病毒的药物。特定的治疗方法正在研究中,并将通过临床试验进行测试。

再次提醒:普通人请勿自行服用双黄连口服液,运用中医中药,脱离辨证论治都是不准确的!治病请遵医嘱。