props.children使用

有一类组件,充当了容器的作用,它定义了一种外层结构形式,然后你可以往里面塞任意的内容。

一般而言可以将代码通过组件属性传递到容器组件中。如下代码所示

class Card extends Component {
  render () {
    return (
      <div className='card'>
        <div className='card-content'>
          {this.props.content}
        </div>
      </div>
    )
  }
}

ReactDOM.render(
  <Card content={
    <div>
      <h2>React.js</h2>
       <div>开源、免费、专业、简单</div>
      订阅:<input />
    </div>
  } />,
  document.getElementById('root')
)

但是这样写明显太丑。

React.js中,默认支持组件嵌套的写法,上面的代码就可以改造成

class Card extends Component {
  render () {
    return (
      <div className='card'>
        <div className='card-content'>
          {this.props.content}
        </div>
      </div>
    )
  }
}

ReactDOM.render(
  <Card>
    <div>
      <h2>React.js</h2>
       <div>开源、免费、专业、简单</div>
      订阅:<input />
    </div>
  </Card>,
  document.getElementById('root')
)

在Card组件中,可以通过 props.children 获得嵌套属性

props.children 是一个数组

使用如下:

class Layout extends Component {
  render () {
    return (
      <div className='two-cols-layout'>
        <div className='sidebar'>
          {this.props.children[0]}
        </div>
        <div className='main'>
          {this.props.children[1]}
        </div>
      </div>
    )
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,052评论 0 1
  • 1、什么是react React.js 是一个帮助你构建页面 UI 的库。React.js 将帮助我们将界面分成了...
    谷子多阅读 2,570评论 1 13
  • React.js 小书 Lesson22 - props.children 和容器类组件 本文作者:胡子大哈本文原...
    胡子大哈阅读 394评论 0 1
  • 介绍 React.js是什么 React是由工作在Facebook开发出来的用于开发用户交互界面的JS库。其源码由...
    bravin阅读 1,348评论 3 1
  • 函数是面向过程的,函数的调用不需要主体,而方法是属于对象的,调用方法需要一个主体-即对象。 npm install...
    Gukson666阅读 480评论 0 3