You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
import React from 'react'
|
|
|
|
class App extends React.Component {
|
|
// constructor 是创建组件时,最先执行,初始化的时候只执行一次
|
|
// 作用:1.初始化 state 2.创建 ref 3.使用 bind 解决 this 指向问题等
|
|
constructor () {
|
|
super()
|
|
console.log('constructor')
|
|
}
|
|
|
|
state = {
|
|
count: 0
|
|
}
|
|
|
|
clickHandler = () => {
|
|
this.setState ({
|
|
count: this.state.count + 1
|
|
})
|
|
}
|
|
|
|
// componentDidMount 是组件挂载(渲染 DOM 渲染)后执行,初始化的时候执行一次 (类似 vue 中的 mounted)
|
|
// 作用:1.发送网络请求 2.DOM 操作
|
|
componentDidMount () {
|
|
console.log('componentDidMount')
|
|
}
|
|
|
|
// render 是每次组件渲染都会触发
|
|
// 作用:渲染 UI (注意,不能在里面调用 setState() )
|
|
render () {
|
|
console.log('render')
|
|
return (
|
|
<div>
|
|
this is div
|
|
<button onClick={this.clickHandler}>{this.state.count}</button>
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
export default App
|