react中使用hook的好处是什么

react中使用hook的好处:1、简化逻辑复用,能更容易复用代码,Hook让开发者可以在无需修改组件结构的情况下复用状态逻辑;2、Hook能够让针对同一个业务逻辑的代码聚合在一块,让业务逻辑清晰地隔离开,让代码更加容易理解和维护。

react中使用hook的好处是什么

本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。

Hook是React 16.8新增的特性,专门用在函数式组件,它可以代替class组件中react的其他特性,是实际工作中要常用到的。

什么是 Hooks

Hooks 译为钩子,Hooks 就是在函数组件内,负责钩进外部功能的函数。

React 提供了一些常用钩子,React 也支持自定义钩子,这些钩子都是用于为函数引入外部功能。

当我们在组件中,需要引入外部功能时,就可以使用 React 提供的钩子,或者自定义钩子。

比如在组件内引入可管理 state 的功能,就可以使用 useState 函数,下文会详细介绍 useState 的用法。

为什么要用 Hooks(使用hook的好处)

使用 Hooks 有 2 大原因:

简化逻辑复用;

让复杂组件更易理解。

1. 简化逻辑复用,能更容易复用代码

在 Hooks 出现之前,React 必须借用高阶组件、render props 等复杂的设计模式才能实现逻辑的复用,但是高阶组件会产生冗余的组件节点,让调试更加复杂。

Hooks 让我们可以在无需修改组件结构的情况下复用状态逻辑。

举个例子,经常使用的antd-table,用的时候经常需要维护一些状态 ,并在合适的时机去更改它们:

componentDidMount(){ this.loadData();}loadData = ()=>{   this.setState({     current: xxx,     total: xxx,     pageSize: xxx,     dataSource: xxx[]   })}onTableChange = ()=>{   this.setState({     current: xxx,     total: xxx,     pageSize: xxx,   })}render(){ const {total,pageSize,current,dataSource} = this.state; return 

登录后复制}

每个table都要写一些这种逻辑,那还有啥时间去摸鱼。这些高度类似的逻辑,可以通过封装一个高阶组件来抽象它们。这个高阶组件自带这些状态,并可以自动调用server去获取remote data。

用高阶组件来实现的话会是这样:

import { Table } from 'antd'import server from './api'function useTable(server) {  return function (WrappedComponent) {    return class HighComponent extends React.Component {      state = {        tableProps: xxx,       };      render() {        const { tableProps } = this.state;        return ;      }    };  };}@useTable(server)class App extends Component{  render(){    const { tableProps } = this.props;    return (      

登录后复制    )  }}

如果用hooks来实现的话,会是:

import { Table } from 'antd'import server from './api'function useTable(server) {  const [tableProps, setTableProps] = useState(xxx);  return tableProps;}function App {    const { tableProps } = useTable();    return (      

登录后复制    )}/*

相对比高阶组件“祖父=>父=>子”的层层嵌套,

hooks是这样的:  

const { brother1 } = usehook1; const { brother2} = usehook2;*/

登录后复制

可以看到,hooks的逻辑更清晰,可读性更好。

2. 让复杂组件更易理解

在 class 组件中,同一个业务逻辑的代码分散在组件的不同生命周期函数中,而 Hooks 能够让针对同一个业务逻辑的代码聚合在一块,让业务逻辑清晰地隔离开,让代码更加容易理解和维护。

【相关推荐:Redis视频教程】

以上就是react中使用hook的好处是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2935343.html

(0)
上一篇 2025年3月11日 20:51:17
下一篇 2025年3月11日 20:51:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react高阶组件是什么意思

    在react中,高阶组件是一个函数,是用于重用组件逻辑的高级技术;高阶组件用于接受一个组件作为参数,返回一个新的组件,这个新的组件会使用传给它的组件作为子组件,可以用属性代理和反向继承两种方法来实现高阶组件。 本教程操作环境:Windows…

    2025年3月11日
    200
  • react中hook是什么

    在react中,hook是React16.8新增的特性,用于在不编写class的情况下使用state及其他的react特性;可以用函数组件去使用react中的一些特性,也可以让函数组件也拥有状态,通过自定义hook实现在组件间公用状态操作。…

    2025年3月11日
    200
  • react15与16版本的不同是什么

    不同:1、15版本架构分为协调器和渲染器两部分,而16版本架构分为调度器、协调器和渲染器三个部分;2、15版本的reconciler是采用递归形式工作是同步的,而16版本的reconciler采用的是异步可中断更新代替15版本的同步更新。 …

    2025年3月11日
    200
  • react单页面和多页面的区别是什么

    区别:1、多页面应用不同的URL返回不同的HTML,而单页面应用不同URL返回同一个HTML;2、多页面应用即使两个页面存在公共资源,这些公共资源会被清空重新下载,而单页面应用的这些公共资源不会被重复下载。 本教程操作环境:Windows1…

    2025年3月11日
    200
  • react中key的用法是什么

    在react中,key用于识别组件,可在DOM中的某些元素被增加或删除时识别哪些元素发生了变化,是一种身份标识;可以根据key来决定是销毁还是更新组件,若key相同,组件有变化就只更新组件相应的属性,若key不同,会销毁之前的组件重新渲染。…

    2025年3月11日
    200
  • react怎么关闭eslint

    方法:1、利用“npm run eject”复制所有依赖文件和相应的依赖到项目中;2、在“package.json”中修改“”eslintConfig””项目的代码;3、若缺少依赖,需要重新安装依赖,利用“npm s…

    2025年3月11日
    200
  • react-redux有什么用

    “react-redux”的作用:1、将组件分为了容器组件和UI组件;2、取代redux中的“store.subscribe”监听组件的状态变化,用于渲染组件;3、配合redux使用,使组件轻松的拿到全局状态,方便组件间的通信。 本教程操作…

    2025年3月11日
    200
  • react dnd的用法是什么

    react dnd用于构建复杂的拖放界面,并保持组件之间的耦合,是一组react高阶组件;使用时只需用对应的API将目标组件包裹,即可实现拖动或接受拖动元素的功能;不需要判断拖动状态,只需在传入的spec对象中各个状态属性中做对应处理即可。…

    2025年3月11日 编程技术
    200
  • react withrouter的用法是什么

    react withrouter用于将一个组件包裹进Route里面,并将“react-router”的三个history、location、match对象传入props对象,引入语法为“import{withRouter}from&#823…

    2025年3月11日
    200
  • 什么时候使用react-redux

    使用“react-redux”的场景:1、用户的使用方式复杂时;2、不同身份的用户有不同的使用方式时;3、多个用户之间可以协作时;4、与服务器大量交互,或者使用了WebSocketView时;5、要从多个来源获取数据时。 本教程操作环境:W…

    2025年3月11日
    200

发表回复

登录后才能评论