React
的筆記..歡迎交流 歡迎指正 總之歡迎..github地址 ⭐⭐⭐(懂我意思吧)html
PropTypes 對通訊間傳入的值進行校驗前端
import PropTypes from 'prop-types'
TodoItem.propTypes = {
// arrayOf 或者 是數字 或者是 字符串
// arrayOf( PropTypes.number , PropTypes.string )
//基本的一些類型
optionalArray: PropTypes.array,
optionalBool: PropTypes.bool,
optionalFunc: PropTypes.func,
optionalNumber: PropTypes.number,
optionalObject: PropTypes.object,
optionalString: PropTypes.string,
optionalSymbol: PropTypes.symbol,
//
optionalNode: PropTypes.node,
// 一個 React 元素
optionalElement: PropTypes.element,
//也能夠檢查是否是一個類的實例
optionalMessage: PropTypes.instanceOf(Message),
//檢查是否是其中確切的值之一
optionalEnum: PropTypes.oneOf(['News', 'Photos']),
//也能夠是這些類型其中之一
optionalUnion: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
PropTypes.instanceOf(Message)
]),
// 一個某種類型的數組
optionalArrayOf: PropTypes.arrayOf(PropTypes.number),
// 一個特定形式的對象
optionalObjectWithShape: PropTypes.shape({
color: PropTypes.string,
fontSize: PropTypes.number
}),
//isReauired修飾的值表示必須傳入 不能爲空 且必須是string(或者其餘)
optionalisStringReauired: PrpTypes.string.isRequired
// 任何數據類型的值
requiredAny: PropTypes.any.isRequired,
}
複製代碼
defaultPropsnode
TodoItem.defaultProps = {
content: 'this is null'
}
複製代碼
更多詳情見文檔 Typechecking With PropTypes Docreact
React.createElement(tagName,{attr}, content)
複製代碼
e.target
也能夠獲取到ref="xxx"
的屬性, 而後this.refs.xxx
獲取到DOM元素ref={ (xxx) =>{ this.xxx = xxx } }
相應的 this.xxx
就是那個DOM元素了setState()
可是 這個異步是僞異步 只是維護了一個updataQueue 並非說自己就是異步代碼實現的
constructor
初始化state和props 以及一些函數this指向問題 constructor
不是React獨有的 是es6 class語法 這裏完美契合了ReactcomponentWillMount
在組件即將被掛載到頁面的時刻自動執行 (尚未被掛載到頁面上)componentDidMount
組件被掛載了以後執行props
發生變化時 最開始會有一個componentWillReceiveProps
一個組件從父組件接收參數, 只要父組件的render
函數被從新執行了 子組件的中國生命週期函數就會被執行shouldComponentUpdate
組件被更新以前 自動執行 componentWillUpdate
組件更新以前會被自動執行 可是在shouldComponentUpdate
以後執行 若是 shouldComponentUpdate
return false 就不執行了render
知道要數據更新了 因此 render
函數又會自動執行 更新組件componentDidUpdate
組件更新完畢以後執行componentWillUnmount
當組件即將被銷燬時執行 此時還未被移除constructor
時就不須要了
悄咪咪說一下今天是世界微笑日(orz),祝你們快樂😀git