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 相关文章推荐
两个DIV等高的JS的实现代码
Dec 23 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
May 11 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
关于javascript的一些知识以及循环详解
Sep 12 Javascript
JavaScript中的await/async的作用和用法
Oct 31 Javascript
JavaScript订单操作小程序完整版
Jun 23 Javascript
js+html5生成自动排列对话框实例
Oct 09 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
vue+axios全局添加请求头和参数操作
Jul 24 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
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jQuery插件开发的五种形态小结
2015/03/04 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
python机器学习之随机森林(七)
2018/03/26 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
车辆工程专业求职信
2014/04/28 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
简单租房协议书
2014/10/21 职场文书
助学金感谢信
2015/01/20 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
利用Redis实现点赞功能的示例代码
2022/06/28 Redis