React是一個狀態機,體現是什麼地方呢,就是體如今state上,經過與用戶的交互,實現不一樣的狀態,而後去渲染UI,這樣就讓用戶的數據和界面保持一致了。state是組件的私有屬性。
state 只能在本組件中去初始化,而且 state 只能被本組件去修改和仿問,不能被外部仿問和修改,因此也能夠說,state 是組件私有的react
constructor(props) { super(props); this.state={ key:value, ... } }
2.更新state算法
注意:setState()是異步的,也就是你調用了setState()以後,React就開始準備去更新了,中間計算會可能會有必定的延時
this.setState({ key:value }) ;
三、調用diff算法
setState()會觸發diff算法最終肯定是否要更新。
每跟新state裏面的數據,render 就會從新執行。~~~~npm
可讓 setState()
接收一個函數而不是一個對象。這個函數用上一個 state 做爲第一個參數,將這次更新被應用時的 props 作爲第二個參數:~~~~數組
// Correct this.setState((state, props) => ({ counter: state.counter + props.increment }));
react 主要是單項數據流,作頁面渲染。app
[props]
數組相似於使用componentDidUpdate
裏面完成。5. React-Hooks 異步
React Hooks 使 規則
爲 保證 Hooks 在使 時 會出現 可預測的問題,官 制定 定要遵循的兩條使 規則( 建議),在此提早聲
明.
只能在函數組件中調 Hook( 定義 Hook 中能夠調 Hook), 要在其餘 JavaScript 函數中調 。**函數
基礎Hooks APIthis
useEffect ( 反作用函數,鉤子函數,componentWillUpdate,componentDidUpdate.)code
useContextcomponent