官术网_书友最值得收藏!

Inheritance versus composition

Facebook and the React community encourage the use of composition over classical inheritance. It can be said that any other pattern to reuse code is considered anti-pattern in React. A lot more can be said about that, but React has been heavily used in production at Facebook without using inheritance for sure. In such a large-scale application, the advantage of building independent pieces and combining them to form a complex functionally is what made React so popular. Components can be moved around, organized by common functionality; they can be well tested and refactored without much of a risk of breaking other parts of the system.

Extending from the React.Component:

class Greeting extends 

React.Component {
constructor(props){ // ES6 class constructor
super(props) // ES6
}
render() {
return <h1>Hello, {this.props.name}</h1>; //local
}
}

Instead of creating a new Greeting instance, we are adding it as a <Greeting/> tag:

ReactDOM.render(
<Greeting name="Johny"/>,document.getElementById('root'))

Some components can be strictly presentational; others may not know who can be their children components in advance. Many namings later came from the community, Smart and Dumb components, Containers and Components, functional and classical.

How React is used it's all up to the developers, the team, and the organization. It's a very powerful and unopinionated library and can be used along with other frameworks.

主站蜘蛛池模板: 乌什县| 通化县| 苏州市| 靖江市| 关岭| 中方县| 玉溪市| 深圳市| 德昌县| 阜阳市| 包头市| 平利县| 休宁县| 诸城市| 兴化市| 乐昌市| 江源县| 收藏| 清水河县| 合江县| 辉南县| 东兴市| 阿拉善盟| 繁峙县| 临泽县| 英吉沙县| 巴中市| 乌苏市| 囊谦县| 咸宁市| 双牌县| 平陆县| 通许县| 北票市| 健康| 阿巴嘎旗| 哈巴河县| 寻乌县| 横山县| 青龙| 马公市|