四:React進階一(類型檢查和props,state與render函數的關系)

類型檢查

  • defaultProps 默認屬性值
  • propTypes 限制接收的屬性類別(僅在開發(fā)模式中檢測)

基本寫法

import PropTypes from 'prop-types';

class Greeting extends React.Component {
  render() {
    return (
      <h1>Hello, {this.props.name}</h1>
    );
  }
}

Greeting.propTypes = {
  name: PropTypes.string
};
  • 使用 `isRequired' 鏈接上述任何一個,以確保在沒有提供 prop 的情況下顯示警告。

  • defaultProps 設置默認屬性

//類型檢測
TodoItem.propTypes = {
    content: PropTypes.string,
    deleteItem: PropTypes.func,
    index: PropTypes.number,
    // 你可以使用 `isRequired' 鏈接上述任何一個,以確保在沒有提供 prop 的情況下顯示警告。
    test: PropTypes.string.isRequired
}

//設置默認值
TodoItem.defaultProps = {
    test: '科比布萊恩特'
}
  • 某種類型之一
 // 一個對象可以是多種類型其中之一
  optionalUnion: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number,
    PropTypes.instanceOf(Message)
  ]),

props,state與render函數的關系

  • 當組件的state或者props發(fā)生改變時,render函數就會重新執(zhí)行(自身)
  • 當父組件的render函數執(zhí)行時,它的子組件的render都將被重新執(zhí)行
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 作為一個合格的開發(fā)者,不要只滿足于編寫了可以運行的代碼。而要了解代碼背后的工作原理;不要只滿足于自己的程序...
    六個周閱讀 8,686評論 1 33
  • 40、React 什么是React?React 是一個用于構建用戶界面的框架(采用的是MVC模式):集中處理VIE...
    萌妹撒閱讀 1,196評論 0 1
  • 原教程內容詳見精益 React 學習指南,這只是我在學習過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,954評論 1 18
  • GUIDS 第一章 為什么使用React? React 一個提供了用戶接口的JavaScript庫。 誕生于Fac...
    jplyue閱讀 3,716評論 1 11
  • React簡介 (1)簡介 React 起源于 Facebook 的內部項目,因為該公司對市場上所有 JavaSc...
    魚魚吃貓貓閱讀 1,756評論 1 6

友情鏈接更多精彩內容