从我的思路来说:首先要思考这几个问题
- 拆的这个结构适合作为组件吗 ?拆开的话要拆到什么程度呢 ?
- 拆组件这一行为能够有效的减少代码、让渲染数据更简便吗 ?
- 拆到一半感觉遇到的问题太多,耽误进度还要不要拆 ?
首先 我认为合适拆组件的结构
- 1.结构相同,样式相同,内容的性质相同。
- 2.多次出现,有拆解的必要。
- 3.减少代码量,方便使用。
- 思考一下,如果是你的话会如何拆分呢,拆分哪一部分呢?
其次:方案一
- 重复区域全部拎出来,这样做 数据渲染比较便捷,代码量也会减少。
- 优点: 可以实现循环编写内容,节省代码,渲染便捷
- 缺点:复用性较差,这个组件是包含着 chart 的。
- 那 如果单独出现 Chart 就需要重写写样式结构
- 也有为这个合并起来的组件 做适应,但违背了第三点,做适应的代码比较多,它变得复杂了,且使用起也很麻烦,需要配置这个配置那个。
- 想到这里时的脑子还是比较乱的,但是绝对是要拆出来,不拆的代码更繁琐。
其次:拆到一半感觉遇到的问题太多,耽误进度还要不要拆
- 上面的讲述,就涉及到这个问题,类似:
- 有单独的图还需要再声明一个 echarts 实例
- 图和文本在其他地方占得比例不同,有些甚至不需要左侧
- 往子组件传递参数,不够明了
- 我的答案是:
- 首先!在工作中,不管使用什么办法,第一条要务就是完成,因此,我选择暂时放弃拆组件。
- 且,你已经感受到耽误进度了,立马放弃,用笨方法,先做出来再说。
- 能用的先用着,不能用的,直接拉结构,等到今天的任务完成,或者几天后项目整体完成开始填真实数据前,再次修正。
最后:我的最终方案
- 将左侧 和 chart 分别拆出来,这样,虽然要放一次放两个组件但胜在灵活方便,文本与 chart配置项之间也清清白白。
- 它的顶上三项可以 v-for 循环出来,只需要出现一次
- 下方也可以自适应各种布局,文本占20% 图表占80%,都可以轻松实现
渲染示例如下
- 只要合理的利用index 就可以同时渲染两个动态数据
-
这样里面的文本部分就会收到一份 数据项
- 数据项 一个萝卜一个坑往里面渲染就好
-
像这个里,它的字段完全一样,我选择渲染,给的是 content 字段进行渲染
- 还有可能会是3段
- 所以我选择循环(content 字段选择数组) 只要在 content 里面再加上一个对象字段就可以了
- 好了,今天的内容就到这里了,明天见。
回顾 重点
- 1.拆组件的前提
- 结构相同,样式相同,内容的性质相同。
- 多次出现,有拆解的必要。
- 减少代码量,方便使用。
- 2.拆组件的注意事项
- 不要为了拆而拆,时刻考虑实用价值
- 如果非要拆,拆不动了先放一放,或者拆小不好使,就往大里拆,反之亦然。
- 拆解成为组件本身就已经是捷径了,不要再为了省略一些小‘利’ 而纠结浪费时间。