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 相关文章推荐
容易被忽略的JS脚本特性
Sep 13 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
node.js中的fs.readlink方法使用说明
Dec 17 Javascript
Bootstrap开发实战之响应式轮播图
Jun 02 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
Node.js的进程管理的深入理解
Jan 09 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 20 Javascript
js实现炫酷光感效果
Sep 05 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 Trait功能与用法实例分析
2020/06/03 PHP
ext实现完整的登录代码
2008/08/08 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
Linux中Python 环境软件包安装步骤
2016/03/31 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
django Admin文档生成器使用详解
2019/07/22 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
成教自我鉴定
2013/10/27 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
租赁协议书范本
2014/04/22 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
对教师的评语
2014/04/28 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python
Golang数据类型和相互转换
2022/04/12 Golang
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers