- Hands-On Design Patterns with React Native
- Mateusz Grzesiukiewicz
- 323字
- 2021-08-13 15:12:56
Component composition
If you have learned any Object-Oriented (OO) language, you may have used inheritance extensively. In JavaScript, this concept is a little bit different. JavaScript inheritance is based on prototypes, and so we call it prototypal inheritance. Functionalities are not copied to the object itself—they are inherited from the prototype of the object and possibly even through other prototypes in the prototype tree. We call this a prototype chain.
However, in React, using inheritance is not very common. Thanks to components, we can embrace another pattern called component composition. Instead of creating a new class and inheriting from the base class, we will create a new parent component that will use its child component to make itself more specific or more powerful. Let's look at an example:
// src/ Chapter 1/ Example_6_Component_composition_red_text/ App.js
const WarningText = ({style, ...otherProps}) => (
<Text style={[style, {color: 'orange'}]} {...otherProps} />
);
export default class App extends React.Component {
render = () => (
<View style={styles.container}>
<Text style={styles.text}>Normal text</Text>
<WarningText style={styles.text}>Warning</WarningText>
</View>
);
}
The App component is being built out of three components: View, Text, and WarningText. It is a perfect example of how one component, through composition, can reuse the capabilities of others.
The WarningText component uses composition to enforce the orange text color in the Text component. It makes the generic Text component more specific. Now, we can reuse WarningText in any place of the app where it is necessary. If our app designer decides to alter the warning text, we can quickly adapt to the new design in one place.
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- OpenShift開發指南(原書第2版)
- 云計算通俗講義(第3版)
- 區塊鏈底層設計Java實戰
- Unity 2D Game Development Cookbook
- PLC應用技術(三菱FX2N系列)
- Visualforce Developer’s guide
- 用案例學Java Web整合開發
- Java程序員面試筆試寶典(第2版)
- PHP編程基礎與實踐教程
- Kotlin極簡教程
- 現代C++語言核心特性解析
- Cloud Development andDeployment with CloudBees
- 編寫高質量代碼之Java(套裝共2冊)
- Python程序員面試算法寶典