在閱讀this article並編寫了幾個React應用之後,我仍然不明白爲什麼「組件」被稱爲組件。即我知道這是「一段代碼」,但對於我來說,來自C#和Python這個詞的「封裝」意味着很多。在陣營我看到創建,例如,成分「UsernamePasswordComponent」,看起來像:爲什麼React的組件是「組件」?
class UsernamePasswordComponent extends React.Component {
render() {
return(
<div>
<input type="text" name="username"
value={this.props.username} onChange={this.props.handlerUsernameFromParentComponent} />
<input type="password" name="password"
value={this.props.password} onChange=this.props.handlerUsernameFromParentComponent />
<button onClick={this.props.handlerClickFromParentComponent}>Login</>
</div>
);
}
我被迫存放在父母(通常是root)狀態password
和username
,我必須寫大量的垃圾在PARENT組件來處理孩子的變化事件。我不明白。
所以最後我有以下問題:
爲什麼陣營提供的雙向綁定這麼醜法?我喜歡
LinkedStateMixin
,但它被標記爲「已棄用」。爲什麼???爲什麼我必須將
paswword
和username
存儲在父級狀態中,而不是將其封裝在子組件中,並提供一種從其獲取數據的接口。或者這個組件可以用更多的反應方式重寫並封裝所有東西?
1)在React世界中,雙向數據綁定或多或少地被忽視。統一的數據流對於複雜的應用程序更容易推理。 2)React組件通常可以放入演示文稿類別(僅顯示內容)和容器類別。將設計與業務邏輯分開總是一個好主意。 – marvinhagemeister
我想你錯過了關於React架構的觀點。你應該實際使用的是flux架構,還是其簡單的版本叫做redux。這將允許你完全分離你的組件狀態。 – Sulthan