10. 如何干净利索的 拆出 合适的组件--完整版

80 阅读3分钟

从我的思路来说:首先要思考这几个问题

  • 拆的这个结构适合作为组件吗 ?拆开的话要拆到什么程度呢 ?
  • 拆组件这一行为能够有效的减少代码、让渲染数据更简便吗 ?
  • 拆到一半感觉遇到的问题太多,耽误进度还要不要拆 ?

首先 我认为合适拆组件的结构

  • 1.结构相同,样式相同,内容的性质相同。
  • 2.多次出现,有拆解的必要。
  • 3.减少代码量,方便使用。

image.png

  • 思考一下,如果是你的话会如何拆分呢,拆分哪一部分呢?

其次:方案一

  • 重复区域全部拎出来,这样做 数据渲染比较便捷,代码量也会减少。
    • 优点: 可以实现循环编写内容,节省代码,渲染便捷
    • 缺点:复用性较差,这个组件是包含着 chart 的。
      • 那 如果单独出现 Chart 就需要重写写样式结构
      • 也有为这个合并起来的组件 做适应,但违背了第三点,做适应的代码比较多,它变得复杂了,且使用起也很麻烦,需要配置这个配置那个。

image.png

  • 想到这里时的脑子还是比较乱的,但是绝对是要拆出来,不拆的代码更繁琐。

其次:拆到一半感觉遇到的问题太多,耽误进度还要不要拆

  • 上面的讲述,就涉及到这个问题,类似:
    • 有单独的图还需要再声明一个 echarts 实例
    • 图和文本在其他地方占得比例不同,有些甚至不需要左侧
    • 往子组件传递参数,不够明了
  • 我的答案是:
    • 首先!在工作中,不管使用什么办法,第一条要务就是完成,因此,我选择暂时放弃拆组件。
    • 且,你已经感受到耽误进度了,立马放弃,用笨方法,先做出来再说。
    • 能用的先用着,不能用的,直接拉结构,等到今天的任务完成,或者几天后项目整体完成开始填真实数据前,再次修正。

最后:我的最终方案

  • 将左侧 和 chart 分别拆出来,这样,虽然要放一次放两个组件但胜在灵活方便,文本与 chart配置项之间也清清白白。
    • 它的顶上三项可以 v-for 循环出来,只需要出现一次
    • 下方也可以自适应各种布局,文本占20% 图表占80%,都可以轻松实现

image.png

渲染示例如下

  • 只要合理的利用index 就可以同时渲染两个动态数据

image.png

  • 这样里面的文本部分就会收到一份 数据项

    • 数据项 一个萝卜一个坑往里面渲染就好
  • 像这个里,它的字段完全一样,我选择渲染,给的是 content 字段进行渲染

image.png

  • 还有可能会是3段

image.png

  • 所以我选择循环(content 字段选择数组) 只要在 content 里面再加上一个对象字段就可以了

image.png

  • 好了,今天的内容就到这里了,明天见。

回顾 重点

  • 1.拆组件的前提
    • 结构相同,样式相同,内容的性质相同。
    • 多次出现,有拆解的必要。
    • 减少代码量,方便使用。
  • 2.拆组件的注意事项
    • 不要为了拆而拆,时刻考虑实用价值
    • 如果非要拆,拆不动了先放一放,或者拆小不好使,就往大里拆,反之亦然。
    • 拆解成为组件本身就已经是捷径了,不要再为了省略一些小‘利’ 而纠结浪费时间。