We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何设计出一个可靠的 React 组件
一个封装组件提供 props 控制其行为而不是暴露其内部结构。
props
耦合是决定组件之间依赖程度的系统特性。根据组件的依赖程度,可区分两种耦合类型:
松耦合是我们设计应用结构和组件之间关系的目标。
松耦合应用(封装组件) 紧耦合应用(组件无封装)
松耦合会带来以下好处:
相反,紧耦合的系统会失去上面描述的好处。主要缺点是很难修改高度依赖于其他组件的组件。即使是一处修改,也可能导致一系列的依赖组件需要修改。
封装 或 信息隐藏 是如何设计组件的基本原则,也是松耦合的关键。
封装良好的组件隐藏其内部结构,并提供一组属性来控制其行为。
隐藏内部结构是必要的。其他组件没必要知道或也不依赖组件的内部结构或实现细节。
React 组件可能是函数组件或类组件、定义实例方法、设置 ref、拥有 state 或使用生命周期方法。这些实现细节被封装在组件内部,其他组件不应该知道这些细节。
ref
state
隐藏内部结构的组件彼此之间的依赖性较小,而降低依赖度会带来松耦合的好处。
细节隐藏是隔离组件的关键。此时,你需要一种组件通信的方法:props。porps 是组件的输入。
porps
prop
string
number
boolean
为了避免破坏封装,请注意通过 props 传递的内容。给子组件设置 props 的父组件不应该暴露其内部结构的任何细节。 例如,使用 props 传输整个组件实例或 refs 都是一个不好的做法。
refs
访问全局变量同样也会对封装产生负面影响。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
封装
耦合是决定组件之间依赖程度的系统特性。根据组件的依赖程度,可区分两种耦合类型:
松耦合是我们设计应用结构和组件之间关系的目标。
松耦合会带来以下好处:
相反,紧耦合的系统会失去上面描述的好处。主要缺点是很难修改高度依赖于其他组件的组件。即使是一处修改,也可能导致一系列的依赖组件需要修改。
封装 或 信息隐藏 是如何设计组件的基本原则,也是松耦合的关键。
信息隐藏
封装良好的组件隐藏其内部结构,并提供一组属性来控制其行为。
隐藏内部结构是必要的。其他组件没必要知道或也不依赖组件的内部结构或实现细节。
React 组件可能是函数组件或类组件、定义实例方法、设置
ref
、拥有state
或使用生命周期方法。这些实现细节被封装在组件内部,其他组件不应该知道这些细节。隐藏内部结构的组件彼此之间的依赖性较小,而降低依赖度会带来松耦合的好处。
通信
细节隐藏是隔离组件的关键。此时,你需要一种组件通信的方法:
props
。porps
是组件的输入。prop
的类型为基本数据(例如,string
、number
、boolean
)prop
可以是一个事件处理函数和异步函数prop
甚至可以是一个组件构造函数,组件可以处理其他组件的实例化为了避免破坏封装,请注意通过
props
传递的内容。给子组件设置props
的父组件不应该暴露其内部结构的任何细节。例如,使用
props
传输整个组件实例或refs
都是一个不好的做法。访问全局变量同样也会对封装产生负面影响。
The text was updated successfully, but these errors were encountered: