iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在react中创建自定义hooks
  • 820
分享到

怎么在react中创建自定义hooks

2023-06-25 14:06:08 820人浏览 独家记忆
摘要

这篇文章主要介绍“怎么在React中创建自定义hooks”,在日常操作中,相信很多人在怎么在react中创建自定义hooks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在react中创建自定义hooks

这篇文章主要介绍“怎么在React中创建自定义hooks”,在日常操作中,相信很多人在怎么在react中创建自定义hooks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在react中创建自定义hooks”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、什么是自定义hooks

逻辑复用

        简单来说就是使用自定义hook可以将某些组件逻辑提取到可重用的函数中。 自定义hook是一个从use开始的调用其他hook的javascript函数。

二、不使用自定义hook时

例1:当我们整个页面需要获取用户鼠标移动的坐标时,不使用hook的代码,我们可以这样写

  const [position, setPosition] = useState({    x: 0,    y: 0  })  useEffect(() => {    const move = (e) => {      setPosition({ x: e.x, y: e.y })    }    document.addEventListener('mousemove', move)    return () => {      document.removeEventListener('mousemove', move)    }  }, [])  return (    <div>      x:{position.x}      y:{position.y}    </div>  )

 例2:当我们页面中有一个图片要跟随鼠标移动时,不使用hook的代码,我们也可以这样写:

const [position, setPosition] = useState({    x: 0,    y: 0  })  useEffect(() => {    const move = (e) => {      setPosition({ x: e.x, y: e.y })    }    document.addEventListener('mousemove', move)    return () => {      document.removeEventListener('mousemove', move)    }  }, [])  return (    <div>      <img        src={img}        style={{          position: 'absolute',          top: position.y,          left: position.x,        }}        alt=""      />    </div>  )

很明显,以上两个例子呈现效果不同,但使用的逻辑代码大部分相同时,这些逻辑代码我们就可以使用hook进行逻辑复用

三、使用自定义hook

我们提取以上两个例子里可以复用的逻辑代码,新建一个名为useMousePosition的文件

import { useState, useEffect } from 'react'export default function useMousePosition() {  const [position, setPosition] = useState({    x: 0,    y: 0  })  useEffect(() => {    const move = (e) => {      setPosition({ x: e.x, y: e.y })    }    document.addEventListener('mousemove', move)    return () => {      document.removeEventListener('mousemove', move)    }  }, [])  return position}

        我们在useMousePosition函数中提取了此功能。现在,我们可以将其导入到要使用的任何位置!

        最后像使用普通函数那样使用即可 

  const position = useMousePosition()  return (    <div>      x:{position.x}      y:{position.y}    </div>  )

        很明显使代码量减少了

到此,关于“怎么在react中创建自定义hooks”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么在react中创建自定义hooks

本文链接: https://www.lsjlt.com/news/305542.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在react中创建自定义hooks
    这篇文章主要介绍“怎么在react中创建自定义hooks”,在日常操作中,相信很多人在怎么在react中创建自定义hooks问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在react中创建自定义hooks...
    99+
    2023-06-25
  • 教你在react中创建自定义hooks
    一、什么是自定义hooks 逻辑复用         简单来说就是使用自定义hook可以将某些组件逻辑提取到可重用的函数中。 自...
    99+
    2022-11-12
  • Vue3中怎么自定义Hooks
    本文小编为大家详细介绍“Vue3中怎么自定义Hooks”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中怎么自定义Hooks”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Composition Api解耦...
    99+
    2023-07-02
  • 怎么构建自己的react hooks
    这篇文章主要介绍怎么构建自己的react hooks,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 常用的一个 hooks官方中提供了几个内置的钩子,我们简单了解下他们的用法。1.1 useState: 状态钩子...
    99+
    2023-06-15
  • Vue怎么自定义hooks函数
    本文小编为大家详细介绍“Vue怎么自定义hooks函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue怎么自定义hooks函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在Vue当中,一个非常重要的功能就...
    99+
    2023-07-05
  • Git的Hooks怎么自定义使用
    这篇文章主要介绍“Git的Hooks怎么自定义使用”,在日常操作中,相信很多人在Git的Hooks怎么自定义使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Git的Hooks怎么自定义使用”的疑惑有所帮助!...
    99+
    2023-06-29
  • hooks怎么在react中使用
    hooks怎么在react中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。State Hooks案例:import { useState }&...
    99+
    2023-06-14
  • 怎么在React中使用Hooks
    这篇文章给大家介绍怎么在React中使用Hooks,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、State Hook1、基础用法function State(){  const&nbs...
    99+
    2023-06-14
  • 怎么在C#中创建一个自定义特性
    这期内容当中小编将会给大家带来有关怎么在C#中创建一个自定义特性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现方式声明自定义特性,一个新的自定义特性应派生自 System.Attribute 类。//...
    99+
    2023-06-14
  • PyQt怎么创建自定义QWidget
    小编给大家分享一下PyQt怎么创建自定义QWidget,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!开发环境Win7  PyCharm  Python3.5.1  PyQt5主要文件:|--&...
    99+
    2023-06-14
  • FlexBuilder中怎么创建自定义控件
    FlexBuilder中怎么创建自定义控件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。创建自定义组件1、Flex是由as类结构实现的。FlexBuilder教程中类结构包含了...
    99+
    2023-06-17
  • ASP.NET中怎么创建自定义操作
    这期内容当中小编将会给大家带来有关ASP.NET中怎么创建自定义操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ASP.NET安装部署之创建自定义操作1.在解决方案资源管理器中选择“Test Insta...
    99+
    2023-06-18
  • 在Django中创建自己的自定义用户模型
    目录1. Django安装2.创建Django应用3.该应用程序的自定义模型4.迁移模型自定义用户模型有什么需求? 创建自己的自定义用户模型至关重要。将来,如果要对模型进行一些更改,...
    99+
    2022-11-12
  • sql怎么创建自定义数据类型
    在 SQL 中,创建自定义数据类型可以使用 `CREATE TYPE` 语句。以下是一个示例:```sqlCREATE TYPE e...
    99+
    2023-09-25
    sql
  • 怎么使用CSS创建自定义光标
    这篇文章主要介绍了怎么使用CSS创建自定义光标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 答:使用CSScursor属性 您可以使用...
    99+
    2022-10-19
  • C#怎么创建用户自定义异常
    本篇内容主要讲解“C#怎么创建用户自定义异常”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么创建用户自定义异常”吧!创建用户自定义异常您也可以定义自己的异常。用户自定义的异常类是派生自&n...
    99+
    2023-06-17
  • 怎么在SAP Cloud for Customer自定义BO中创建访问控制
    本篇内容主要讲解“怎么在SAP Cloud for Customer自定义BO中创建访问控制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在SAP Cloud for Customer自定义...
    99+
    2023-06-04
  • Angular中如何自定义创建指令
    小编给大家分享一下Angular中如何自定义创建指令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!指令介绍在 Angular 中有三种类型的指令:组件,有模板的指...
    99+
    2023-06-14
  • vue3在自定义hooks中使用useRouter报错的解决方案
    目录自定义hooks中使用useRouter报错useRouteruseRoute使用Vue.use()报错“Cannot read property ‘us...
    99+
    2022-11-13
    vue3 useRouter报错 vue3自定义hooks 使用useRouter报错
  • 在WordPress中创建自定义页面模板方法详解
    WordPress 页面模板是特定的模板文件,用于特定页面或页面组,这些用于单页数据的模板显示在前端。我们还可以在 WordPress 中创建自定义页面模板。 下面看下如何...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作