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 继承实例分析
Nov 04 Javascript
jqPlot Option配置对象详解
Jul 25 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
May 28 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
Feb 26 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
js表单验证实例讲解
Mar 31 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
Mar 09 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 Javascript
Vue在页面数据渲染完成之后的调用方法
Sep 11 Javascript
JavaScript 事件代理需要注意的地方
Sep 08 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
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
javascript测试题练习代码
2012/10/10 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python 文件处理注意事项总结
2017/04/10 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
tensorflow之并行读入数据详解
2020/02/05 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
公务员平时考核实施方案
2014/03/11 职场文书
售后服务承诺书模板
2014/05/21 职场文书
啤酒节策划方案
2014/05/28 职场文书
节能减耗标语
2014/06/21 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
Python图像处理库PIL详细使用说明
2022/04/06 Python