- 本文基于之前创建的react-app脚手架文件
- App.tsx
import React from 'react'
function App() {
const [count, setCount] = React.useState(5)
console.log('1')
React.useEffect(() => {
console.log('2')
let timer = setInterval(() => {
if (count > 0) {
setCount(count - 1)
}
}, 1000)
return () => {
clearInterval(timer)
}
}, [count])
console.log('3')
return (
<div className="App">
<p>Hello,Dust</p>
<span>count:{
count}</span>
</div>
)
}
export default App
- 执行结果:
- 注意观察每个
console.log
的位置,执行结果是实现一个5s的倒计时,每秒console里都会打印出"1,3,2" - 说明useEffect的内容是最后执行,先执行之前之后的内容,这样也好理解"副作用"这个定义.
简单一点:去掉倒计时功能
import React from 'react'
function App() {
console.log('1')
React.useEffect(() => {
console.log('2')
}, [])
console.log('3')
return (
<div className="App">
<p>Hello,Dust</p>
</div>
)
}
export default App
- 执行结果:(是不是直观多了)