如果我们在一个组件内使用多个`useState
Hooks, React 如何知道哪个 Hooks 对应哪个 state?
为什么不要在 if
内使用 Hooks?
我们以 React-Dom/server
内的 React Hooks 实现来进行探究[1]:
如果我们在一个组件内使用多个`useState
Hooks, React 如何知道哪个 Hooks 对应哪个 state?
为什么不要在 if
内使用 Hooks?
我们以 React-Dom/server
内的 React Hooks 实现来进行探究[1]:
如何在组件之间复用代码一直是困扰 React 开发者的一个问题,虽然通过 React 的 Higher-Order Components(HOC)、Render Props 等技术可以解决 这些部分,但是同时也带来了很多其他问题:
初学React时,使用组件自身管理状态,这样当业务逻辑比较简单时还比较有用,一旦业务逻辑复杂起来,各组件之间要相互通信,情况就复杂起来了。可以使用状态提升,将各子组件状态提升到父组件内,这样又要经历事件向上传递 --》 属性向下传递的过程,如果组件嵌套较深,回调传递也是十分复杂。好在有了Redux,可以将整个项目的状态存储到一个对象内,各组件分别与该对象进行交互,逻辑就清晰多了。但是有了Redux,是否就可以抛去setState
方法了?
一个例子是表单。如果我们使用受控组件,那么每一个表单项onChange
事件都应该触发Redux事件,改变状态,再作为属性传递给表单,和状态提升思路差不多。但是可以发现,其他组件(一般)是不需要访问我们表单的状态的,将表单状态传递到全局Redux,最后还是传递回表单。对比一下两者需要的工作: