useEffect
在Function组件里面使用生命周期
加载时生命周期 componentDidMount -- componentDidUpdate
import React, {Component} from 'react';
class Comp1 extends Component{
constructor(props){
super(props);
this.state = { count:0 }
}
componentDidMount(){ console.log('componentDidMount 运行'); }
componentDidUpdate(){ console.log('componentDidUpdate 运行'); }
addCount(){
this.setState({ count:this.state.count+1 })
}
render(){
return (
<div>
<h2>{this.state.count}</h2>
<button onClick={this.addCount.bind(this)}>点击</button>
</div>
)
}
}
export default Comp1;
import React,{useState,useEffect} from 'react';
function Comp2(){
const [count,addCount] = useState(0);
useEffect(()=>{
console.log('加载');
})
return (
<div>
<h2>{count}</h2>
<button onClick={()=>{addCount(count+1)}}>点击</button>
</div>
)
}
export default Comp2;
卸载时生命周期
import React,{Component} from 'react';
import {BrowserRouter as Router,Route,Link} from 'react-router-dom';
class Comp3 extends Component{
render(){
return (
<div>
<Router>
<ul>
<li><Link to="/">首页</Link></li>
<li><Link to="/list">列表</Link></li>
</ul>
<Route path="/" exact component={Home} />
<Route path="/list" component={List} />
</Router>
</div>
)
}
}
class Home extends Component{
componentDidMount(){
console.log('首页加载');
}
componentWillUnmount(){
console.log('首页销毁');
}
render(){
return ( <div> <h2>首页</h2> </div> )
}
}
class List extends Component{
componentDidMount(){
console.log('列表页加载');
}
componentWillUnmount(){
console.log('列表页销毁');
}
render(){
return ( <div> <h2>列表页</h2> </div> )
}
}
export default Comp3;
import React, { useState, useEffect } from 'react';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
function Comp4() {
return (
<div>
<Router>
<ul>
<li> <Link to="/">首页</Link> </li>
<li> <Link to="/list">列表页</Link> </li>
</ul>
<Route path="/" exact component={Home} />
<Route path="/list" component={List} />
</Router>
</div>
)
}
function Home() {
const [count,addCount]=useState(0);
useEffect(()=>{
console.log('首页加载');
return ()=>{ console.log('首页销毁') };
},[]);
return (
<div>
<h2>首页 - {count}</h2>
<button onClick={()=>{addCount(count+1)}}>点击增加</button>
</div>
)
}
function List() {
useEffect(()=>{
console.log('列表页加载');
return ()=>{ console.log('列表页销毁') };
})
return ( <div> <h2>列表页</h2> </div> )
}
export default Comp4;