Vue使用mixin分发组件的可复用功能


Posted in Javascript onSeptember 01, 2019

vue创建高阶组件的实现不够react优雅,但那是vue和react的设计思想导致的。在react中一切都是函数,而在vue中,组件最终都是函数,但在开发时可以是JSON对象,而且每个vue组件要注意三个点:props、events和slots,就是这三个导致vue创建高阶组件时要传入相应的属性,较react要复杂。

vue官方推荐使用mixins来完成高阶组件的功能,如果对vue实现高阶组件有兴趣的话推荐看[vue实现高阶组件][1]

下面是vue官网使用mixins的例子:

// 定义一个混入对象
var myMixin = {
 created: function () {
  this.hello()
 },
 methods: {
  hello: function () {
   console.log('hello from mixin!')
  }
 }
}

// 定义一个使用混入对象的组件
var Component = Vue.extend({
 mixins: [myMixin]
})

var component = new Component() // => "hello from mixin!"

每个vue组件有mixins属性接收mixin数组,但由于mixin与组件,mixin与mixin之间存在属性命名冲突的问题,vue解决这个的方式是:

1 数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

2 值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。

3 Vue.extend()和new Vue()创建的组件,解决上述的命名冲突的方案是一样的。

总结

以上所述是小编给大家介绍的Vue使用mixin分发组件的可复用功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js中精确计算加法和减法示例
Mar 28 Javascript
js实现字符串的16进制编码不加密
Apr 25 Javascript
node.js中的console用法总结
Dec 15 Javascript
小议JavaScript中Generator和Iterator的使用
Jul 29 Javascript
js检查是否关闭浏览器的方法
Aug 02 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
那些精彩的JavaScript代码片段
Jan 12 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
vue.js实例todoList项目
Jul 07 Javascript
redux-saga 初识和使用
Mar 10 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
Openlayers实现图形绘制
Sep 28 Javascript
JavaScript页面加载事件实例讲解
Sep 01 #Javascript
Node.js安装详细步骤教程(Windows版)详解
Sep 01 #Javascript
vue组件命名和props命名代码详解
Sep 01 #Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 #Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 #Javascript
vue中的v-if和v-show的区别详解
Sep 01 #Javascript
react中Suspense的使用详解
Sep 01 #Javascript
You might like
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Python自定义线程池实现方法分析
2018/02/07 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
党支部换届选举方案
2014/05/08 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015年助残日活动总结
2015/03/27 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书