怎样才能构建优秀的React组件?

栏目: 服务器 · 发布时间: 4年前

内容简介:百度百科:组件化是一种高效的处理复杂应用系统,更好的明确功能模块作用的方式。通俗理解:在几年前端开发,应用系统中的功能模块之间是相互依赖、高度耦合。例如:修改A模块,就先找到跟A模块相关联的其他模块,注意修改A模块会对其他模块造成的影响;组件化不是一门新技术,它是一种总结:组件化主要为了拆分复杂应用,降低模块之间的耦合度,明确组件之间的边界,有利于代码维护。提高组件复用(代码复用);

百度百科:组件化是一种高效的处理复杂应用系统,更好的明确功能模块作用的方式。

通俗理解:在几年前端开发,应用系统中的功能模块之间是相互依赖、高度耦合。例如:修改A模块,就先找到跟A模块相关联的其他模块,注意修改A模块会对其他模块造成的影响;组件化不是一门新技术,它是一种 思想 。旨于构建 纯粹 的模块(称为组件化,进行组件化的模块为组件),模块单一功能原则,以此降低模块之间的耦合和依赖。

总结:组件化主要为了拆分复杂应用,降低模块之间的耦合度,明确组件之间的边界,有利于代码维护。提高组件复用(代码复用);

问题总结:

一问:按照单一原则实现模块组件化后,遇到组件之间有交互怎么办?

实际开发过程中,大多数组件之间肯定会有交互的。例如:《列表查询功能模块》可以将其组件化分为《列表展示组件》和《查询组件》,由于《列表组件》需要《查询功能》的支持,那么这两个组件之间就必须存在交互了;而组件之间的交互的形式大致分为以下两种(如下图所示):

怎样才能构建优秀的React组件?
  • 直接交互形式 : 通过硬编码的形式将组件之间关联起来,关联复杂度取决于图一中“交互区域”面积多大,即:面积越大,组件之间耦合度越高,边界越模糊,越不利于代码维护和复用;
  • 间接交互形式 :通过第三方进行组件交互,避免了组件间的直接交互。它们之间的交互一般来说需要遵循相应的规则,不需要更改原有组件之间的逻辑;(说明:在React系统中,第三方是指自定义/高阶组件、redux等实现手段);

总结:“直接交互”和“间接交互”哪种形式比较好?这个问题没有具体答案,我以为这是根据组件之间关联的复杂度来决定。如果是小型、组件之间关联程度低的,可以利用“直接交互”实现。大型、组件之间关联程度高的,可以使用“间接交互”实现;

二问:根据怎样的粒度将模块进行组件化?

只能说 根据实际项目分析、尽量按最小粒度组件化 ,每个应用系统复杂度是不同的,那么划分的情况又是不一样。没有规则说明需要按照某种粒度来对模块进行组件化。我们只能在开发之前要了解清楚整个项目流程,根据实际项目中不同模块采用不同的粒度进行组件化;例如上述提到的《列表查询功能模块》,你可以将它作为整个组件,也可以将它拆分成《列表展示组件》和《查询组件》,甚至可以进一步将《查询模块》拆分成更小粒度,例如查询组件中的表单,你可以根据表单控件类型(input、select、button、textarea等)单独进行组件化;

总而言之,粒度划分大小主要要考虑到项目性质、项目需求和组件间关联度。而且划分粒度越小,花费的时间成本越大,组件也更利于复用和维护;


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

三位一体

三位一体

[美]迈克尔·马隆 / 黄亚昌 / 浙江人民出版社 / 2015-4 / 98.90

[内容简介] ●本书讲述了罗伯特•诺伊斯、戈登•摩尔和安德鲁•格鲁夫如何缔造了世界上最重要公司的故事。公司的“外交家”诺伊斯被视为圣父、“思想家”摩尔被视为圣灵、“行动家”格鲁夫被视为圣子,这个三位一体的组合创下了企业管理中的奇迹,开创了一个价值万亿美元的产业,将一家初创企业打造成为千亿美元量级的巨型公司。 ●本书作者迈克尔•马隆在接触空前数量的企业档案的基础上,揭示了英特尔公司无处不......一起来看看 《三位一体》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码