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 相关文章推荐
在VS2008中使用jQuery智能感应的方法
Dec 30 Javascript
判断对象是否Window的实现代码
Jan 10 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
使用jQuery实现简单的tab框实例
Aug 22 jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
Webpack中SplitChunksPlugin 配置参数详解
Mar 24 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
微信小程序实现导航栏选项卡效果
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
php配合jquery实现增删操作具体实例
2013/12/12 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
php之可变变量的实例详解
2017/09/12 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python实现的选择排序算法示例
2017/11/29 Python
Python聊天室程序(基础版)
2018/04/01 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
浅析Python3 pip换源问题
2020/01/06 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
安全标准化汇报材料
2014/02/03 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
政工师工作总结2015
2015/05/26 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书