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>
)
}
}
相關文章
- 前端學習(2369):元件的建立使用和元件的生命週期前端元件
- Angular學習(二):元件-生命週期Angular元件
- 學習vue生命週期Vue
- React元件生命週期React元件
- React 元件生命週期React元件
- UIAbility元件生命週期UI元件
- vue生命週期整理學習Vue
- Angular元件——元件生命週期(二)Angular元件
- Angular元件——元件生命週期(一)Angular元件
- angular4學習記錄 — 元件通訊、生命週期Angular元件
- Vue父子元件生命週期Vue元件
- react之元件生命週期React元件
- React生命週期學習筆記React筆記
- 自定義元件-元件的生命週期元件
- React 元件生命週期詳解React元件
- React元件生命週期詳解React元件
- Angular2 元件生命週期Angular元件
- 理解React-元件生命週期React元件
- Vue學習(三)生命週期函式Vue函式
- React元件和生命週期簡介React元件
- Android中元件生命週期完全解析Android元件
- Vue 元件生命週期:探索鉤子Vue元件
- vue總結「三」--元件生命週期Vue元件
- 鴻蒙自定義元件生命週期鴻蒙元件
- EntityFramework 學習【Entity Lifecycle 實體生命週期】Framework
- Vue原始碼學習(八):生命週期呼叫Vue原始碼
- rust學習十一.3、生命週期標記Rust
- Mybatis學習-配置、作用域和生命週期MyBatis
- 探討父元件和兄弟元件的生命週期元件
- 用生命週期規範元件化流程元件化
- Android生命週期元件Lifecycle使用詳解Android元件
- 探索 React 元件之間的生命週期React元件
- 元件生命週期管理和通訊方案元件
- React 深入系列4:元件的生命週期React元件
- 前端週刊第62期:學習學習再學習前端
- Vue學習筆記(2)—— Vue的生命週期Vue筆記
- Java開發學習(五)----bean的生命週期JavaBean
- 生命週期