美文网首页
React Hook初体验

React Hook初体验

作者: peroLuo | 来源:发表于2020-06-10 11:40 被阅读0次

一、useState

1.初始化

const [state, setState] = useState(initialState);

2.函数式更新

function Counter({initialCount}) {
  const [count, setCount] = useState(initialCount);
  return (
    <>
      Count: {count}
      <button onClick={() => setCount(initialCount)}>Reset</button>
      <button onClick={() => setCount(prevCount => prevCount - 1)}>-</button>
      <button onClick={() => setCount(prevCount => prevCount + 1)}>+</button>
    </>
  );
}
  1. setCount:可以直接赋值 setCount(initialCount)
  2. setCount:者执行一个回调函数setCount(prevCount => prevCount + 1)

3. 惰性初始state

const [state, setState] = useState(() => {
  const initialState = someExpensiveComputation(props);
  return initialState;
});
  1. initialState 参数只会在组件的初始渲染中起作用,后续渲染时会被忽略。

二、useEffect

useEffect(()=>{},[]);

1. 清除effect

useEffect(() => {
  const subscription = props.source.subscribe();
  return () => {
    // 清除订阅
    subscription.unsubscribe();
  };
});

结合effect执行时机,return 的作用是清除当前订阅。例如定时器操作等。

2. 执行时机

在浏览器完成布局与绘制之后,传给 useEffect 的函数会延迟调用。这使得它适用于许多常见的副作用场景。

3. 条件执行

通过设置依赖,决定该effect是否执行。
如果设置依赖为空数组[],,effect 内部的 props 和 state 就会一直持有其初始值。只执行一次??

相关文章

  • React Hook初体验

    一、useState 1.初始化 2.函数式更新 setCount:可以直接赋值 setCount(initial...

  • React hook 10种 Hook

    React hook 10种 Hook (详细介绍及使用) React Hook是什么?React官网是这么介绍的...

  • 学习react hook的总结

    react16推出了react hook,react hook使得functional组件拥有了class组件的一...

  • react-hook-form使用

    官网地址:https://react-hook-form.com/[https://react-hook-form...

  • react hook介绍

    react hook是什么 react hook是react中引入新特性,它可以让react函数组件也拥有状态;通...

  • React Hook介绍与使用心得

    关于React Hook React Hook 对于React来说无疑是一个伟大的特性,它将React从类组件推向...

  • React Hook

    Through 4 questions introduce React Hook What is Hook? In...

  • react-hook

    react-hook

  • react hook入门

    一、react hook介绍 Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情...

  • React Hooks - 学习笔记

    React Hooks Hook 是能让你在函数组件中“钩入” React 特性的函数。 State Hook u...

网友评论

      本文标题:React Hook初体验

      本文链接:https://www.haomeiwen.com/subject/skfznctx.html