Vue组件化开发思考
作者:laozhang 发布时间:2024-04-27 15:47:38
一般说到组件,我首先想到的是弹窗,其他就大脑空白了。
因为觉得这个是在项目中最常用的功能,提取出来方便复用的才是组件~
然而我才发现这个想法是有问题的。
我发觉可能从意识上把Vue的组件和UI库的组件(弹窗之类的)混淆了。。。
缘起于最近的一个表单开发,页面上有2个是联动菜单的选项。
首先想到的是,这个样式和选择地址的那个联动菜单,完全一样哈~
(废话,同一个项目 当然要保持ui风格的相同啊!)
不过差别在于 我这个是 一个1级 一个2级, 地址那个是4级的.
然后我就想着把那个地址的组件引进来用,发现这是个写死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讲给我的专业名词,不知道放这用对不对哈)的~


猜你喜欢
- 目录1 标准化2 归一化3 正则化4 离散化5 白化 机器
- !DOCTYPE--------------------------------------------------------------
- 今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。问题就是对一个list
- 1.基本构架:mport PIL.Image 相关模块img=Image.open(img_name) 打开图片img.save(save_
- python实现MySQL指定表增量同步数据到clickhouse,脚本如下:#!/usr/bin/env python3# _*_ cod
- 对 current_datetime 的一次赋值操作:def current_datetime(request): now =
- 介绍这个例子主要利用turtle库实现根据输入动态展示不同机器人的图像和属性信息。代码部分非原创只是做了些许修改和整理使得更易阅读。图片和文
- 概要在列表,元组,实例,类,字典和函数中存在循环引用问题。有 __del__ 方法的实例会以健全的方式被处理。给新类型添加GC支持是很容易的
- 引用了jQuery,节省了很多鼠标点击上的判断。界面显然都是照搬Windows的扫雷啦,详细的内容注释里都有,我就不啰嗦啦~先上截图~引用了
- asp使用session来防止表单多次被提交的方法。formtest.asp' 表单文件<%Randomize&nb
- 本节介绍 Python 中的另一个常用模块 —— statistics模块,该模块提供了用于计算数字数据的数理统计量的函数。它包含了很多函数
- python语句与语法1.python简单语句的基本介绍>>> while True: #简单的while循环... re
- 问题初始化数据库时mysqld --initialize --user mysql报错:mysqld: error while loadin
- 1、二维数组声明方式是下面这样的:var images=new Array(); //先声明一维 for(var i=0;i<10;i
- 一、破解原理其实原理很简单,一句话概括就是「大力出奇迹」,Python 有两个压缩文件库:zipfile 和 rarfile,这两个库提供的
- 如下所示:colum = ['性别','年龄','M','样本类型'] +
- 这篇论坛文章(赛迪网技术社区)主要介绍了一种简单的MySQL数据库安装方法,详细内容请大家参考下文:虽然安装MySQL数据库的文章很多,但是
- 大多数做过网页设计的都知道“CSS框架”,而且肯定有很多设计师已经开始在作品中使用CSS框架。就像其他编程语言一样,CSS也可以把一些重复使
- 看代码吧~import numpy as npa = np.array([[2, 4, 6, 1], [1, 5, 2, 9]])print
- 1.去官网下载PyGame 注意:要下载对应版本的包 官网地址:http://www.pyg