React元件的狀態及生命週期事件
定義元件
元件定義有兩種方式,函式定義和類定義
函式定義元件
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const element = <Welcome name="Sara" />;
ReactDOM.render(
element,
document.getElementById(`root`)
);
類定義元件
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
ReactDOM.render(
<Welcome name="kevin" />,
document.getElementById(`root`)
);
警告:
元件的返回值只能有一個根元素。如果ReactDOM.render方法渲染元件裡包含多個同級別的元件,需要用一個DIV將其他元件包裹
類定義元件有區域性狀態和生命週期鉤子事件
通常類的狀態是在類的建構函式中宣告的
class Clock extends React.Component {
constructor(props) {
super(props);//只要類元件宣告瞭建構函式就必須先呼叫父類的建構函式
this.state = {date: new Date()};
}
//更新狀態
this.setState({
date: new Date()
});
}
警告:
如果你不在 render() 中使用某些東西,它就不應該在狀態中
鉤子函式
componentDidMount(當元件插入到DOM中觸發)
componentWillUnmount(當元件移出DOM中後觸發)
正確使用狀態
1.不要直接更新狀態,而是通過setState方法
// Wrong
this.state.comment = `Hello`;
// Correct
this.setState({comment: `Hello`});
2.狀態的更新可能是非同步的,你不應該依靠它們的值來計算下一個狀態
// Wrong
this.setState({
counter: this.state.counter + this.props.increment,
});
當要被更新的狀態依賴於props或它自身時,setState需要傳遞一個方法作為引數,第一個引數為它的前一個狀態的值,第二個引數為props物件
// Correct
this.setState((prevState, props) => ({
counter: prevState.counter + props.increment
}));
相關文章
- React 狀態管理:狀態與生命週期React
- React 元件生命週期React元件
- React元件生命週期React元件
- react之元件生命週期React元件
- React 元件生命週期詳解React元件
- React元件生命週期詳解React元件
- 理解React-元件生命週期React元件
- docker - 生命週期和狀態Docker
- 探索 React 元件之間的生命週期React元件
- React 深入系列4:元件的生命週期React元件
- React元件和生命週期簡介React元件
- React原始碼解析(3):元件的生命週期React原始碼元件
- React生命週期React
- <react學習筆記(3)>屬性與狀態以及元件的生命週期(初始化階段)React筆記元件
- React新的生命週期React
- React-生命週期React
- React 元件的生命週期可以分為哪些階段React元件
- 自定義元件-元件的生命週期元件
- React-原始碼解析-生命週期(自定義元件)React原始碼元件
- react的生命週期函式React函式
- 簡述React的生命週期React
- React生命週期的變化React
- UIAbility元件生命週期UI元件
- 圖解React的生命週期及執行順序圖解React
- React16.3.0以後的生命週期(一) – 元件載入React元件
- Angular元件——元件生命週期(二)Angular元件
- Angular元件——元件生命週期(一)Angular元件
- react 生命週期變遷React
- React 渲染 和 生命週期React
- React 基礎_生命週期React
- React生命週期總結React
- React專題:生命週期React
- react生命週期筆記React筆記
- react、JSX編譯原理、生命週期、屬性、狀態改變、建立元件、複合元件間的資訊傳遞、受控和非受控元件、react腳手架ReactJS編譯原理元件
- 新手對React生命週期的理解React
- Vue父子元件生命週期Vue元件
- Java執行緒生命週期與狀態切換Java執行緒
- React v16 生命週期函式詳解:如何、何時使用它們(React 元件生命週期的修訂和最新指南)React函式元件