關於 React 小書:props children 和容器類組件


Posted by YongChenSu on 2020-12-09

props children 和容器類組件


先做出容器

import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import './index.css'

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 小書</h2>
      <div>開源、免費、專業、簡單</div>
      訂閱:<input />
    </div>
  } />,
  document.getElementById('root')
)

將 props.children 印出來

React.js 就是一個個把 JSX 元素放到 array 當中,故也可用陣列方法把 JSX 放在不同地方。

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>
    )
  }
}

利用實用的 props.children 撰寫

import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import './index.css'

class Card extends Component {
  handleLog() {
    console.log(this.props.children)
  }

  render() {
    return (
      <div className='card'>
        <div className='card-content' onClick={this.handleLog.bind(this)}>
          {this.props.children}
        </div>
      </div>
    )
  }
}

ReactDOM.render(
  <Card>
    <h2>React.js 小書</h2>
    <div>開源、免費、專業、簡單</div>
    訂閱:<input />
  </Card>,
  document.getElementById('root')
)

參考資源

tags: 程式導師實驗計畫第四期, React 小書

#程式導師實驗計畫第四期 #前端 #React #react 小書 #props children







Related Posts

CSS BEM命名

CSS BEM命名

Vue 的 computed、methods  跟 watch 差在哪裡?(上)

Vue 的 computed、methods 跟 watch 差在哪裡?(上)

我要成為前端工程師的學習筆記:HTML & CSS 篇 - CSS 選擇器 Day3

我要成為前端工程師的學習筆記:HTML & CSS 篇 - CSS 選擇器 Day3


Comments