关于hooks:React学习笔记之Hooks
1. useStatestate 只在组件首次渲染的时候被创立 useState Hook: 容许咱们在函数组件中存储外部 state。 const [fruit, setFruit] = useState('banana'); //构造语法2. useEffectuseEffect Hook 可看做 componentDidMount,componentDidUpdate 和 componentWillUnmount 这三个函数的组合。 React 组件中有两种常见副作用操作:须要革除的和不须要革除的。咱们来更认真地看一下他们之间的区别。 when?euseEffect容许在组件加载和更新时执行操作。从概念上说,咱们心愿有些操作在每次渲染之后执行 —— 但 React 的 class 组件没有提供这样的办法。即便咱们提取出一个办法,咱们还是要在两个中央调用它。如把副作用操作放到 componentDidMount 和 componentDidUpdate 函数中 // 在class组件中componentDidMount() { //首次渲染时 document.title = `You clicked ${this.sta执行te.count} times`; } componentDidUpdate() { //更新时 document.title = `You clicked ${this.state.count} times`; }// 用useEffectuseEffect(()=>{ document.title = `You clicked ${count} times`; )Do what?Effect能够在React 组件渲染后执行某些操作。当 React 渲染组件时,React 会保留你传递的函数(咱们将它称之为 “effect”),并在更新完 DOM 后执行它。也就是说它在渲染之后和每次更新之后都会执行。React 保障了每次运行 effect 的同时,DOM 都曾经更新结束。咱们能够在 effect 中获取到最新的 变量值,变量值须要在函数的作用域内。这个过程在每次渲染时都会产生,包含首次渲染。 ps:传递给 useEffect 的函数在每次渲染中都会有所不同,这是刻意为之的。事实上这正是咱们能够在 effect 中获取最新的 count 的值,而不必放心其过期的起因。每次咱们从新渲染,都会生成新的 effect,替换掉之前的。某种意义上讲,effect 更像是渲染后果的一部分 —— 每个 effect “属于”一次特定的渲染。 ...