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元件
- React 元件生命週期詳解React元件
- 理解React-元件生命週期React元件
- React元件生命週期詳解React元件
- React筆記(元件生命週期)React筆記元件
- React Native 元件(一)元件的生命週期React Native元件
- docker - 生命週期和狀態Docker
- 探索 React 元件之間的生命週期React元件
- React 深入系列4:元件的生命週期React元件
- 深入理解 React 元件的生命週期React元件
- React元件和生命週期簡介React元件
- React元件生命週期——精華筆記React元件筆記
- React原始碼解析(3):元件的生命週期React原始碼元件
- React生命週期React
- React 生命週期React
- React新的生命週期React
- React-生命週期React
- <react學習筆記(3)>屬性與狀態以及元件的生命週期(初始化階段)React筆記元件
- React 元件的生命週期可以分為哪些階段React元件
- 簡單談談我理解的React元件生命週期React元件
- UIAbility元件生命週期UI元件
- 自定義元件-元件的生命週期元件
- React生命週期的變化React
- 簡述React的生命週期React
- react的生命週期函式React函式
- React-原始碼解析-生命週期(自定義元件)React原始碼元件
- 元件規範和生命週期——react文件翻譯元件React
- react: 元件初識 && 生命週期 && 相關說明React元件
- Hibernate的三種狀態及物件生命週期物件
- React 渲染 和 生命週期React
- React 基礎_生命週期React
- react 生命週期變遷React