
5.2
组合与继承
|
121
5.2
组合与继承
接下来,我们将探索如何改进应用程序的设计,不仅仅局限于原生
JavaScript
在语言级别提供的功能。本节将讨论增长代码库的两种不同方法:
继承
通过将代码片段堆叠在一起进行垂直扩展,这样就可以在为他人和自
己定制特性时,可以利用现有的特性。
组合
通过在同一抽象级别添加相关或不相关的代码片段来水平扩展应用程
序,同时将复杂性控制在最低水平。
5.2.1
通过
Class
继承
在
ES6
为
JavaScript
引入用于原型继承的优秀语法之前,原型并不是被广
泛使用的特性。相反,一些工具库提供了辅助方法使继承变得更简单,它
们在底层使用原型继承,但对使用者隐藏实现的细节。虽然
ES6
的类看上
去很像其他语言中的类,但它们是使用原型作为底层的语法糖,所以可以
兼容旧技术和工具库。
引入
class
关键字,再加上
React
框架一开始将类作为声明有状态组件的首
选方法,这些类帮助激发了人们对模式的喜爱,而它以前在
JavaScript
中
则不太受欢迎。对于
React
,基础的
Component
类提供轻量级的状态管理方
法,同时将渲染和生命周期留给扩展
Component
的使用者类。必要时,使
用者还可以决定实现诸如
componentDidMount
之类的方法,这些方法允许在
挂载组件树之后进行事件绑定。而
componentDidCatch
可用于捕获组件生命