美文网首页
【React】—hooks认知

【React】—hooks认知

作者: 南慕瑶 | 来源:发表于2020-03-30 21:09 被阅读0次

一、为什么要引入 hooks ?

1.在组件之间复用状态逻辑很难

也就是说,在组件之间,复用 state,比较麻烦。

没有 hooks 的时代,我们通常会采用 render prop 或高阶组件的方式,来共享 state。

这类方案比较麻烦,使我们的代码变的难以理解。

【附】

render prop 是一个用于告知组件需要渲染什么内容的函数 prop。

也就是,给组件传递一个叫做 render 的 prop,这个 prop 是个函数,这个函数返回一个组件实例,用于渲染。当然,它也可以不叫 render,作为 prop 的名字,完全自定义即可。

【使用hooks】(自定义hooks)

你可以使用 Hook 从组件中提取状态逻辑,使得这些逻辑可以单独测试并复用。Hook 使你在无需修改组件结构的情况下复用状态逻辑。 这使得在组件间或社区内共享 Hook 变得更便捷。

2.复杂组件变得难以理解

(1)componentDidMount 中可能包含多个拉取数据的逻辑。多种逻辑放在一起,代码量大了,会不好维护。

(2)在 componentDidMount 注册的订阅事件,需要在 componentWillUnmount 中清除。相关逻辑被拆分,影响维护。

【使用hooks】(useEffect)

useEffect hooks,在 componentDidMount、componentDidUpdate、componentWillUnmount 三种生命周期下,都会进入。

3.难以理解的 class

(1)this 的指向、必须在 constructor 里面为方法手动绑定 this

(2)class 不能很好的压缩,并且会使热重载出现不稳定的情况

【使用hooks】(用hooks代替class)

Hook 使你在非 class 的情况下可以使用更多的 React 特性。 

二、Hook 使用原则

1.只能在函数最外层调用 Hook。不要在循环、条件判断或者子函数中调用。

2.只能在 React 的函数组件 或 自定义Hook中调用 Hook。不要在其他 JavaScript 函数中调用。

三、自定义 Hook

用于在组件之间复用状态(state)逻辑。

【注】

Hook 是一种复用 状态逻辑 的方式,它不复用 state 本身。事实上 Hook 的每次 调用 都有一个完全独立的 state —— 因此你可以在单个组件中多次调用同一个自定义 Hook。

自定义 Hook 更像是一种约定而不是功能。如果函数的名字以 “use” 开头并调用其他 Hook,我们就说这是一个自定义 Hook。 

相关文章

  • 【React】—hooks认知

    一、为什么要引入 hooks ? 1.在组件之间复用状态逻辑很难 也就是说,在组件之间,复用 state,比较麻烦...

  • React Hooks

    React Hooks Hooks其实就是有状态的函数式组件。 React Hooks让React的成本降低了很多...

  • react-hooks

    前置 学习面试视频 总结react hooks react-hooks react-hooks为函数组件提供了一些...

  • React Hooks

    前言 React Conf 2018 上 React 提出了关于 React Hooks 的提案,Hooks 作为...

  • 5分钟简单了解React-Hooks

    首先附上官网正文?:React Hooks Hooks are a new addition in React 1...

  • react-hooks

    react-hooks react-hooks 是react16.8以后,react新增的钩子API,目的是增加代...

  • React-hooks API介绍

    react-hooks HOOKS hooks概念在React Conf 2018被提出来,并将在未来的版本中被...

  • React Hooks 入门

    React Hooks 是 React v16.8 版本引入了全新的 API。 React Hooks 基本概念 ...

  • react hooks 源码分析 --- useState

    1. react hooks简介 react hooks 是react 16.8.0 的新增特性,它可以让你在不编...

  • React Hooks的入门简介

    什么是React Hooks? 首先React Hooks是React生态圈里的新特性,它改变了传统react的开...

网友评论

      本文标题:【React】—hooks认知

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