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

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.

主站蜘蛛池模板: 平江县| 东乡县| 洱源县| 体育| 通河县| 吴旗县| 潮安县| 广州市| 依兰县| 郧西县| 湖南省| 霍山县| 深水埗区| 会泽县| 正阳县| 扎赉特旗| 兴宁市| 通榆县| 波密县| 泰和县| 大姚县| 辽阳县| 美姑县| 锡林浩特市| 布尔津县| 吉水县| 青川县| 武安市| 汤阴县| 马山县| 孝感市| 安岳县| 鄯善县| 西城区| 讷河市| 呼玛县| 青神县| 都兰县| 同心县| 抚松县| 都安|