ReactJS前端學習-元件生命週期
State & 生命週期
生命週期是元件載入的一個流程
- 初始化元件
- 渲染元件
- 更新元件
- 刪除元件
參考 https://zh-hans.reactjs.org/docs/state-and-lifecycle.html#gatsby-focus-wrapper
研究元件的生命週期
-
mounting載入元件
constructor() 構造器函式 初始化資料狀態,比如state初始化
render() 返回一個Virtual DOM
componentDidMount() DOM節點插入之後呼叫的生命函式。元件掛載後(插入DOM樹後)立即呼叫,網路請求來獲取資料,資料狀態更改
class App extends React.Component{
constructor(){
super();
this.state={
name:"alxor"
}
console.log("元件初始化...");
this.click = this.click.bind(this);
}
//事件函式
click(){
this.setState({
name:"hello alxor"
});
}
componentDidMount(){
console.log("DOM節點插入之後");
}
render(){
console.log("render......");
return (
<div>
<p>this.state.name</p>
<button onClick = {this.click}></button>
</div>
)
}
}
-
updating更新元件:當狀態資料發生改變,會觸發這個生命函式
class App extends React.Component{
constructor(){
super();
this.state={
name:"alxor"
}
console.log("元件初始化...");
}
componentDidMount(){
console.log("DOM節點插入之後");
}
//元件更新之後會呼叫這個生命週期函式
componentDidUpdate(){
console.log("componentDidUpdate......");
}
render(){
console.log("render......");
return (
<div>
<p>this.state.name</p>
</div>
)
}
}
-
unmounting 解除安裝元件
componentWillUnmount()元件在解除安裝之前會呼叫這個方法
ReactDOM.unmountComponentAtNode(container)
- 用於解除安裝元件,引數就是插入元件的容器,dom物件是我們document.getElementById獲取的根節點
class App extends React.Component{
constructor(){
super();
this.state={
name:"alxor"
}
console.log("元件初始化...");
}
componentDidMount(){
console.log("DOM節點插入之後");
}
//元件更新之後會呼叫這個生命週期函式
componentDidUpdate(){
console.log("componentDidUpdate......");
}
componentWillUnmount(){
console.log("componentWillUnmount()======");
}
render(){
console.log("render......");
return (
<div>
<p>this.state.name</p>
<button onClick = {this.click}>點選更改state</button>
<button onClick = {()=> {ReactDOM.unmount(ComponentAtNode(container))}>解除安裝元件</button>
</div>
)
}
}
相關文章
- Angular學習(二):元件-生命週期Angular元件
- 前端學習(2369):元件的建立使用和元件的生命週期前端元件
- 學習vue生命週期Vue
- ReactJS 生命週期、資料流與事件ReactJS事件
- React 元件生命週期React元件
- React元件生命週期React元件
- UIAbility元件生命週期UI元件
- 深入學習Activity生命週期
- vue生命週期整理學習Vue
- Angular元件——元件生命週期(一)Angular元件
- Angular元件——元件生命週期(二)Angular元件
- angular4學習記錄 — 元件通訊、生命週期Angular元件
- react 學習--元件的生命週期(二)執行階段React元件
- react 學習--元件的生命週期(三)銷燬階段React元件
- Vue父子元件生命週期Vue元件
- react之元件生命週期React元件
- [React]元件的生命週期React元件
- React生命週期學習筆記React筆記
- 自定義元件-元件的生命週期元件
- react 學習--元件的生命週期(一)初始化階段React元件
- Vue學習(三)生命週期函式Vue函式
- Angular2 元件生命週期Angular元件
- React 元件生命週期詳解React元件
- 理解React-元件生命週期React元件
- React元件生命週期詳解React元件
- React筆記(元件生命週期)React筆記元件
- 理解React元件的生命週期React元件
- .net 控制元件生命週期控制元件
- Mybatis學習-配置、作用域和生命週期MyBatis
- Vue原始碼學習(八):生命週期呼叫Vue原始碼
- Apple Watch學習之路 生命週期研究APP
- React元件和生命週期簡介React元件
- vue總結「三」--元件生命週期Vue元件
- React元件生命週期——精華筆記React元件筆記
- Android 元件系列-----Activity生命週期Android元件
- Vue 元件生命週期:探索鉤子Vue元件
- 鴻蒙自定義元件生命週期鴻蒙元件
- React Native 元件(一)元件的生命週期React Native元件