Vue组件化开发思考


Posted in Javascript onFebruary 02, 2018

一般说到组件,我首先想到的是弹窗,其他就大脑空白了。

因为觉得这个是在项目中最常用的功能,提取出来方便复用的才是组件~

然而我才发现这个想法是有问题的。

我发觉可能从意识上把Vue的组件和UI库的组件(弹窗之类的)混淆了。。。

缘起于最近的一个表单开发,页面上有2个是联动菜单的选项。

首先想到的是,这个样式和选择地址的那个联动菜单,完全一样哈~

(废话,同一个项目 当然要保持ui风格的相同啊!)

不过差别在于 我这个是 一个1级 一个2级, 地址那个是4级的.

Vue组件化开发思考

然后我就想着把那个地址的组件引进来用,发现这是个写死4级的

这个时候我只想到2种办法

1,分别改写成1级选项和2级选项的2个组件(好像比较low)

2,引用4级联动组件,改写成可选1级选项或2级选项(有点麻烦,到时候还要测地址没被我改坏)

3,重写一个可以通用无限联动菜单(方便可选级的)

最后选了3,自己重新搞了个。

至于为什么没有整合2,主要考虑到这两个组件所处的业务页面不同逻辑也有些差异:

1获取列表的逻辑可能不同,是一次性获取4级还是每次只获取1级或2级,

这个不确定的话,做成通用组件就都要处理了

2我这个是直接弹选项的,地址那个是跳新页面再点击弹选项的

我这个可以父子组件传递数据,地址那个用了vuex(非父子)

总之就是实现成本和维护成本高,复用价值没那么高。

相当于2个页面都各自有一个样式相同逻辑不同的组件。

这完全是2个组件~

复制其通用样式部分,在各自内部实现其业务逻辑。

两个组件放在不同的板块内,相互独立,方便管理和维护。

这个时候 再结合vue组件化的图来看 你会清楚

对于组件化开发

分治(自有业务逻辑)比复用(相同逻辑) 更为重要!

复杂的业务逻辑配合vuex更方便实现组件化~

所以我理解组件化的组件是应该泛指是 高内聚低耦合(某phper讲给我的专业名词,不知道放这用对不对哈)的~

Vue组件化开发思考

Javascript 相关文章推荐
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
js格式化货币数据实现代码
Sep 04 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
js图片预加载示例
Apr 30 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
Javascript中数组方法汇总(推荐)
Apr 01 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 Javascript
JS实现图片切换效果
Nov 17 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
Feb 01 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 #Javascript
解析Vue.js中的组件
Feb 02 #Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 #Javascript
vue 2.0 购物车小球抛物线的示例代码
Feb 01 #Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 #Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 #Javascript
JS 实现百度搜索功能
Feb 01 #Javascript
You might like
数据库相关问题
2006/10/09 PHP
PHP链表操作简单示例
2016/10/15 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
高校自主招生自荐信
2013/12/09 职场文书
后勤工作职责
2013/12/22 职场文书
办公室助理岗位职责
2013/12/25 职场文书
实习生岗位职责
2014/04/12 职场文书
初一学生评语大全
2014/04/24 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
接待员岗位职责范本
2015/04/15 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA