React.js 中的組合與繼承
組合和繼承是在 React.js 中將多個元件一起使用的兩種方法。這有助於程式碼重用。React 建議儘可能使用組合而不是繼承,並且僅在非常特殊的情況下才使用繼承。
理解它的示例 −
假設我們有一個輸入使用者名稱元件。
繼承
class UserNameForm extends React.Component { render() { return ( <div> <input type="text" /> </div> ); } } ReactDOM.render( < UserNameForm />, document.getElementById('root'));
只輸入名稱很容易。我們將建立和更新使用者名稱欄位的另外兩個元件。
使用繼承,我們將像這樣執行 −
class UserNameForm extends React.Component { render() { return ( <div> <input type="text" /> </div> ); } } class CreateUserName extends UserNameForm { render() { const parent = super.render(); return ( <div> {parent} <button>Create</button> </div> ) } } class UpdateUserName extends UserNameForm { render() { const parent = super.render(); return ( <div> {parent} <button>Update</button> </div> ) } } ReactDOM.render( (<div> < CreateUserName /> < UpdateUserName /> </div>), document.getElementById('root') );
我們擴充套件了 UserNameForm 元件,並使用 super.render(); 從子元件中提取了其方法
組合
class UserNameForm extends React.Component { render() { return ( <div> <input type="text" /> </div> ); } } class CreateUserName extends React.Component { render() { return ( <div> < UserNameForm /> <button>Create</button> </div> ) } } class UpdateUserName extends React.Component { render() { return ( <div> < UserNameForm /> <button>Update</button> </div> ) } } ReactDOM.render( (<div> <CreateUserName /> <UpdateUserName /> </div>), document.getElementById('root') );
使用組合比使用繼承更簡單,並且易於保持複雜性。
廣告