美文网首页
composition&inheritance in React

composition&inheritance in React

作者: 吕晔Ivy | 来源:发表于2019-03-26 08:13 被阅读0次
  • React 不用inheritance,所有需要用extends的方案都可以单独写一个JS文件然后import

  • Composition(i.e. containment, specialization)


包含关系(containment)

组件如果不知道子组件会有什么,常见于容器组件,那么最好用props.children将子组件传递


function BoxContainer = () =>{

return(

<box className = {'fancybox' + props.color}>

    {props.children}

</box>);

}

function ContentInsideboxContainer = () =>{

return(

<BoxContainer color=“blue">

    <h1 className=“welcome”>

    Hello!

    </h1>

    <o className=“param”>

    Something inside here!

   </p>

</BoxContainer>

) 

}

特例关系(specialization)

I,e, welcome dialog是dialog的特例

function Dialog = () =>{

return(

<div className=“dialog">

    {props.title}

    {props.message}

    {props.children}

</div>);

}

function WelcomeDialog = () =>{

return(

<Dialog title=“welcome” message=“hello”>

<h1>

This is a h1

</h1>

</Dialog>);

}

也可以用于class,

i.e.

function Dialog = () =>{

return(

<div className=“dialog">

    {props.title}

    {props.message}

    {props.children}

</div>);

}
class WelcomeDialog extends[React.Component](http://react.component/){

    consturctor(props){

    super(props);

     this.state={

    login: ‘’,

    }

    }

handleChange = (e) => {this.setState({login:e.target.value});}

render(){

return(

<Dialog title=“welcome” message=“hello”>

<input onChange={this.handleChange}>

</Dialog>);

}}

相关文章

网友评论

      本文标题:composition&inheritance in React

      本文链接:https://www.haomeiwen.com/subject/bgjwvqtx.html