举个例子,假设有个对象,他叫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都有自己的合并策略,有兴趣的同学可以去读一读它的源码!

---------------------

最新文章

  1. javaweb学习总结(二十四)——jsp传统标签开发
  2. html5 的draggable属性使用&lt;转载收藏&gt;
  3. font-face字体文件引入方式
  4. PMP考试--成本管理中常用的概念
  5. 字符串(马拉车算法,后缀数组,稀疏表):BZOJ 3676 [Apio2014]回文串
  6. C++简介
  7. (一)、Struts第一天
  8. Left/Right/Inner Join用法和区别
  9. 前端设计技巧——用 Promise 处理交互和异步
  10. 聊聊一直困扰前端程序员的浏览器兼容-【css】
  11. java中的抽象类的作用
  12. Linux安装最新版Mono,Jexus(截至2015年12月30日)
  13. Android 查看system/bin目录下支持哪些命令?
  14. 机器学习入门-使用GridSearch进行网格参数搜索GridSeach(RandomRegressor(), param_grid, cv=3)
  15. 用 requests 模块从 Web 下载文件
  16. 如何研究某个gene的ceRNA 网络
  17. 修改nginx的http响应头server字段
  18. linux下创建与删除用户详细步骤 ***
  19. 【转载】Git忽略规则和.gitignore规则不生效的解决办法
  20. 洛谷——P2958 [USACO09OCT]木瓜的丛林Papaya Jungle

热门文章

  1. angularjs radio 默认选中
  2. python的map、reduce和filter(过滤器)函数(廖雪峰老师python基础)
  3. hdu 5564 Clarke and digits
  4. 用倍增法构造后缀数组中的SA及RANK数组
  5. 九. jenkins用户权限管理
  6. I2C总线协议详解
  7. 关于css3 Animation动画
  8. jenkins配置到gitlab拉代码
  9. Python字节码与解释器学习
  10. C++中的多重继承(二)