Reactjs 什么';转换设计模式的反应方式是什么?

Reactjs 什么';转换设计模式的反应方式是什么?,reactjs,Reactjs,我想尽可能多地封装。假设我们正在使用一个具有模式的CSS框架,并且我们希望将其组件化。这将允许我们集中代码的所有实例,因此如果我们想要更改模式,那么我们只需要在这个组件中更改它 在幕后,它看起来像这样: 常量模态=()=>{ 返回 {this.props.head} {this.props.body} {this.props.footer} } 我没有特别发现这个设计模式有什么问题,我认为它完全达到了我想要的。然而,我怀疑可能有一种更“合适”的方法。有两种主要模式用于基于以下内容设计组件:

我想尽可能多地封装。假设我们正在使用一个具有模式的CSS框架,并且我们希望将其组件化。这将允许我们集中代码的所有实例,因此如果我们想要更改模式,那么我们只需要在这个组件中更改它


在幕后,它看起来像这样:
常量模态=()=>{
返回
{this.props.head}
{this.props.body}
{this.props.footer}
}

我没有特别发现这个设计模式有什么问题,我认为它完全达到了我想要的。然而,我怀疑可能有一种更“合适”的方法。

有两种主要模式用于基于以下内容设计组件:

  • 一些组件不知道他们的孩子提前。这对于表示通用“框”的边栏对话框等组件尤其常见

  • 例如:

    功能指令(道具){
    返回(
    {props.children}
    );
    }
    函数WelcomeDialog(){
    返回(
    欢迎
    

    感谢您访问我们的飞船!

    ); }
  • 有时,您可能需要在组件中设置多个“孔”。这样 案例中,您可能会提出自己的约定,而不是使用 儿童

  • 例如:

    功能拆分窗格(道具){
    返回(
    {props.left}
    {props.right}
    );
    }
    函数App(){
    返回(
    );
    }
    
    第二种模式正是你在问题中所写的

    例如,您最好先使用设计模式


    参考

    有两种主要模式
    用于基于以下内容设计组件:

  • 一些组件不知道他们的孩子提前。这对于表示通用“框”的边栏对话框等组件尤其常见

  • 例如:

    功能指令(道具){
    返回(
    {props.children}
    );
    }
    函数WelcomeDialog(){
    返回(
    欢迎
    

    感谢您访问我们的飞船!

    ); }
  • 有时,您可能需要在组件中设置多个“孔”。这样 案例中,您可能会提出自己的约定,而不是使用 儿童

  • 例如:

    功能拆分窗格(道具){
    返回(
    {props.left}
    {props.right}
    );
    }
    函数App(){
    返回(
    );
    }
    
    第二种模式正是你在问题中所写的

    例如,您最好先使用设计模式


    参考

    通过道具传递组件没有什么错,除了组件应采用非常规格式以便可读之外,通过道具传递的组件也以这种方式缩进更深:

    {props.children};
    
    父组件可以根据需要对子组件进行限制:

    类模态扩展组件{
    静态标头=ModalHeader;
    render(){
    返回(
    {this.props.children.find({type}=>type===ModalHeader}
    ...
    );
    }
    }
    
    还可以作为静态属性承载子组件:

    
    ...
    
    通过道具传递组件没有什么错,除了组件的格式应该是非常规的,以便可读,而且通过道具传递的组件以这种方式缩进得更深:

    {props.children};
    
    父组件可以根据需要对子组件进行限制:

    类模态扩展组件{
    静态标头=ModalHeader;
    render(){
    返回(
    {this.props.children.find({type}=>type===ModalHeader}
    ...
    );
    }
    }
    
    还可以作为静态属性承载子组件:

    
    ...