Vue.config.optionMergeStrategies 用法分析
举个例子,假设有个对象,他叫objA, 技能是说hello,他喜欢的女生叫小花,但是他是一个花心的人!
objA = {
name: 'objA ',
sayHello_ () {
console.log('hello')
},
love: '小花',
personality: '花心'
}
然后,又有一个对象,她叫objB, 技能是说world
objB = {
name: 'objB',
sayWorld () {
console.log('world')
}
}
然后现在想把objB 去 objA 家里玩!然后objA, 学会了objB的说world的技能,并且他爱上了objB,并且变得专一了。(而你就是定这个命运的人)
objA = {
name: 'objA',
sayHello_ () {
console.log('hello')
},
sayWorld () {
console.log('world')
},
love: 'objB',
personality: '专一'
}
同理,让我们用代码来看待这件事情!让objB 和 objA 合并,如果用到Vue实例上,就等同于我们写了这么一堆函数:(我们以【name, love, personality】举例吧!毕竟代码越少越好)
import Vue from 'vue'
Vue.config.optionMergeStrategies.name = function (from, self) {
return self.name ? self.name : from.name
}
Vue.config.optionMergeStrategies.love = function (from, self) {
return from.love ? from.love: self.love
}
Vue.config.optionMergeStrategies.personality = function (from, self) {
return self.personality === '花心' ? '专一' : '花心'
}
new Vue({
el: '#app',
...
})
组件A
<script>
import B from './components/B.js'
export default {
mixins: [B],
name: 'objA',
love: '小花',
personality: '花心',
created (http://www.my516.com) {
console.log(this.$options.name)
console.log(this.$options.love)
console.log(this.$options.personality)
},
...
}
</script>
B.js
export default {
name: 'objB'
}
当然,vue自身所有的option都有自己的合并策略,有兴趣的同学可以去读一读它的源码!
---------------------
最新文章
- javaweb学习总结(二十四)——jsp传统标签开发
- html5 的draggable属性使用<;转载收藏>;
- font-face字体文件引入方式
- PMP考试--成本管理中常用的概念
- 字符串(马拉车算法,后缀数组,稀疏表):BZOJ 3676 [Apio2014]回文串
- C++简介
- (一)、Struts第一天
- Left/Right/Inner Join用法和区别
- 前端设计技巧——用 Promise 处理交互和异步
- 聊聊一直困扰前端程序员的浏览器兼容-【css】
- java中的抽象类的作用
- Linux安装最新版Mono,Jexus(截至2015年12月30日)
- Android 查看system/bin目录下支持哪些命令?
- 机器学习入门-使用GridSearch进行网格参数搜索GridSeach(RandomRegressor(), param_grid, cv=3)
- 用 requests 模块从 Web 下载文件
- 如何研究某个gene的ceRNA 网络
- 修改nginx的http响应头server字段
- linux下创建与删除用户详细步骤 ***
- 【转载】Git忽略规则和.gitignore规则不生效的解决办法
- 洛谷——P2958 [USACO09OCT]木瓜的丛林Papaya Jungle