常用 hook
- useState
const [state, setState] = useState(initialState);
import React, {
useState } from 'react';
import Child from './Children'
function App() {
let [data, setName] = useState({
name: "佳佳",
age: 20
});
return <div >
<
Child data = {
data }
/ > <
button onClick = {
() => {
setName({
name: "憨批",
age: 23
});
}
} > 变身 < /button>
<
/div>
}
export default App;
- useEffect
类组件
componentDidMount、componentDidUpdate 和 componentWillUnmount
需要清除的副作用
import React, {
useState, useEffect } from 'react'
function Child(props) {
let {
data } = props;
let [age, setAge] = useState(8);
useEffect(() => {
console.log("挂载");
}, []);
useEffect(() => {
return () => {
console.log("不挂载")
}
}, [])
useEffect(() => {
console.log("跟新了")
}, [data])
return <div >
<
h1 > name: {
data.name } < /h1> <
h1 > age: {
age } < /h1> <
button onClick = {
() => {
setAge(++age)
}
} > 长一岁 < /button> < /
div >
}
export default Child;
import React, {
useState, useEffect, useRef } from 'react'
function Child(props) {
let {
data } = props;
let [age, setAge] = useState(8);
let agaP = useRef();
let [txt, setTxt] = useState("文字")
useEffect(() => {
console.log(agaP.current);
});
let massage = "hhh"
return <div >
<
h1 > name: {
data.name } < /h1> <
h1 ref = {
agaP } > age: {
age } < /h1> <
button onClick = {
() => {
setAge(++age)
}
} > 长一岁 < /button>
<
p > {
txt } < /p> <
input type = "text"
value = {
txt }
onChange = {
(target) => {
setTxt(target.value)
}
}
/> < /
div >
}
export default Child;