内容概览: 

  • 组件化的目的
  • 哪些逻辑需要组件化
  • 基于现有场景,如何设计组件,提高开发效率

组件化的目的

  组件化的概念或者描述有很多,在此就不列举了。工作中,我们会遇到很多功能相近的业务场景和高频控件,这里我们就需要对这些大量重复但不完全一致的代码进行分析、总结、抽象,最后封装成组件,便于进行统一、升级,减少代码复制、粘贴,提高项目代码的可读性,降低维护成本和开发成本。

  除此之外,有时候也会将一个大的业务场景拆分成多个小模块,减少单文件的体积或是多人协作开发。

  总而言之,组件化的目的就是减少开发成本、提高开发效率。

哪些逻辑需要组件化

  参考一些现有的UI库,再加上日常工作遇到的情况,我喜欢把组件分为三类:基础功能组件、多业务模块复用逻辑组件、 业务模块拆分组件。

  基础功能组件:按钮、分页、列表、图表、时间选择器之类。

  多业务模块复用逻辑组件:这类组件通常指的是在特定的业务范围内在多个业务场景中出现,这类组件通常是在基础功能组件的基础上结合特定数据或接口二次封装组合而成。例如通用的人员下拉选择,通用的的类型下拉选择、通用的视图节点下拉选择。

  业务模块拆分组件:有的业务场景内容比较多,如果都放在一起会代码过多很难管理,也不利于多人协同开发,例如Dashboard之类的展示页、订单、人员调配之类的操作页

基于现有场景设计组件,提高开发效率 

  之前的参与的项目由于人力不足以承担自研UI,通常都是借助于第三方UI组件库。所以在设计组件时,更多的是在UI组件基础结合特性进行二次开发。以我之前参与的项目为例(vue+element-ui)。业务中有大量的列表和图表。列表方面除去几个特殊类型,大都是常见的展示列+操作列模式,我的处理方式是将column以配置传入组件内,减少模板内容。图表主要依靠echarts实现,为了避免每次在业务代码中使用都经历一遍初始化、绑定size监听、组件销毁时注销实例的过程,我将这些统一封装到图表组件内部去处理,对外暴露options属性,用来负责传递数据变化。

 

(未完待续...)

  

  

转载于:https://www.cnblogs.com/so-letitgo/p/8904971.html

感想2-对于组件化的一些思考相关推荐

  1. 关于ECS设计以及MVC分层设计和组件化设计的思考和总结(这个标题就问你长不长)

    前言 最近工作忙了很多关于设计的事情,用了常用的分层设计MVC也尝试是用了ECS这种设计方式,同时也参考了Unity或者Creator的这种组件化方式.有了很多困惑也有了一些总结. 首先,MVC也好E ...

  2. (4.6.30)组件化:Android项目构架演变之路

    文章目录 一.简单开发模型 二.单工程开发模型(业务逻辑分层模型) 2.1 简单开发模型的宏观分层 2.2 MOA原架构模型 2.3 业务层的分层理念与设计模式 2.3.1 分层理念 2.3.2 MV ...

  3. 跨桌面端之组件化实践

    本文主要介绍了千牛PC跨端框架中,我们关于组件化部分的思考.方案选择.遇到的一些问题和解法. 此文为本系列文章第三篇, 第一篇:跨全端SDK技术演进 第二篇:跨桌面端之Web容器演进 本文:跨桌面端之 ...

  4. Vue/React组件化开发的一些思考

    组件化开发的优势 组件化开发利用了面向对象的威力,易于构建规模比较大的应用并且获得比较高的可维护性,可扩展性.Vue.React厂商及社区不但提供了组件化开发的框架,而且提供了易于起步并包含了从编码. ...

  5. [Android Pro] 由模块化到组件化(一)

    cp from : https://blog.csdn.net/dd864140130/article/details/53645290 在Android SDK一文中,我们谈到模块化和组件化,现在我 ...

  6. 教你打造一个Android组件化开发框架

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 CC:Component Caller,一个android组件化开发框架, 已开源,github地址:https://github ...

  7. iOS 组件化 —— 路由设计思路分析

    原文 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,VIPER等复杂架构.更换适合业 ...

  8. Vue.js组件化开发实践

    Vue.js组件化开发实践 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一 ...

  9. 组件化实践详解(二)

    在上一篇文章<组件化实践详解(一)>中我们介绍了组件化实践的目标和实践步骤,本文继续说说关于组件化实践遇到的问题及思考. 1.组件内的架构设计 这条本来我是不想写的,但是很多组件化的文章里 ...

最新文章

  1. jquery 配合 ajax 完成 在线编辑 你值得拥有
  2. Intel Realsense D435 关于开放环境下的目标识别 曝光量参数的自动设定机制
  3. Linux如何修改用户名?
  4. std::future和std::promise和std::packaged_task
  5. 性能测试流程-各阶段的工作
  6. (十四)面向对象之多态
  7. 华为Mate 40 Pro首碎照来了,网友酸了:不要给我
  8. 多进程和多线程的区别_关于多进程和多线程的那些事儿
  9. Java 性能测试的四项原则
  10. Matlab中使用varargin来实现参数可变的函数
  11. java 云 代码_我 - java代码库 - 云代码
  12. Windows终端配置emoji
  13. 各种常用的默认端口号 总结
  14. matlab irandon函数,CT系统参数标定和图像重建
  15. Injective Protocol官方文档翻译(九) -清盘、清算(Liquidation)
  16. 大厂程序员的一天是如何度过的?
  17. 如何取消您的Nintendo Switch在线订阅
  18. php下lua的运行,phpStudy中起用lua脚本
  19. opencv实战3-处理图像的颜色
  20. Java仿文库的基本方法(openoffice+swftools+flexPaper)

热门文章

  1. Python自动单元测试框架
  2. linux系统微内核,科普:微内核操作系统现状
  3. python计算结果向上取整_python中的向上取整向下取整以及四舍五入的方法
  4. puppeteer 自动化测试 一
  5. nodejs 快速发布rtsp server
  6. 把地图中的道路以线条提取出来_自动驾驶中基于车道线的高清制图方法回顾
  7. 【Kafka】Kafka 实现 Exactly-once (ack机制、高水位)
  8. 【Elasticsearch】Elasticsearch 通信模块的分析
  9. 【maven】The forked VM terminated without saying properly
  10. 【Mac】Mac 下 kafka 生产者 控制台 发送长消息被截断