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 相关文章推荐
zeroclipboard复制到剪切板的flash
Aug 04 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
Jan 11 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
js DOM 元素ID就是全局变量
2012/09/20 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
Vuex入门到上手教程
2018/06/20 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python生成指定长度的随机数密码
2014/01/23 Python
python实现网站的模拟登录
2016/01/04 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
美术专业个人自我评价
2014/01/18 职场文书
党风廉政建设责任书
2014/04/14 职场文书
医院信息公开实施方案
2014/05/09 职场文书
安全环保标语
2014/06/09 职场文书
出差报告格式模板
2014/11/06 职场文书
婚宴父母致辞
2015/07/27 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers