React Hooks
REACT提供的HOOKS函数,目的是谁让函数式组件能够拥有类似与类组件的一些效果
=> useState在函数式组件中应用状态
=> useEffect 拥有生命周期
=> useReducer 让其能够向redux一样的管理状态
...
useState
import React, { useState } from 'react';
import PropTypes from 'prop-types'
const Test = (props) => {
let [state, changeNum] = useState({
supNum: props.supNum,
oppNum: props.oppNum
})
console.log(state)
return (
<div style={{ paddingTop: '50px' }}>
<i>supNum:{state.supNum}</i>
<br />
<i>oppNum:{state.oppNum}</i>
<br />
<button onClick={_ => {
changeNum({
...state,
supNum: ++state.supNum
})
}}>supNum</button>
<button onClick={_ => {
changeNum({
...state,
oppNum: ++state.oppNum
})
}}>oppNum</button>
</div>
);
}
Test.propTypes = {
supNum: PropTypes.number.isRequired,
oppNum: PropTypes.number.isRequired
}
export default Test;
useEffect
import React, {useState, useEffect, useRef, useReducer} from 'react';
const Test = (props) => {
let [state, changeNum] = useState({
supNum: props.supNum,
oppNum: props,oppNum
})
useEffect(() => {
console.log('依赖supNum更新')
}[supNum])
return (
<div>
<buttom onClick={_ => {
changeNum({
...state,
supNum: ++state.supNum
})
}}></buttom>
</div>
);
}
export default Test;
useRef
import React, {useState, useEffect, useRef, useReducer} from 'react';
const Test = (props) => {
let [state, changeNum] = useState({
supNum: props.supNum,
oppNum: props,oppNum
})
let num = useRef()
return (
<div>
<h4 ref={num}>
{supNum}
</h4>
<buttom onClick={_ => {
changeNum({
...state,
supNum: ++state.supNum
})
}}></buttom>
<buttom onClick={_ => {
console.log(num.current)
}}></buttom>
</div>
);
}
export default Test;