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 相关文章推荐
用javascript控制iframe滚动的代码
Apr 10 Javascript
javascript add event remove event
Apr 07 Javascript
jQuery Lightbox 图片展示插件使用说明
Apr 25 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
js下拉菜单语言选项简单实现
Sep 23 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
May 10 Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
Vue3.0中的monorepo管理模式的实现
Oct 14 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
如何隐藏你的.php文件
2007/01/04 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
优秀经理获奖感言
2014/03/04 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
基于Python编写一个监控CPU的应用系统
2022/06/25 Python
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL