React的hooks---自定义hooks
通过自定义 Hook,可以将组件逻辑提取到可重用的函数中,在 Hook 特性之前,React 中有两种流行的方式来共享组件之间的状态逻辑:render props和高阶组件,但此类解决方案会导致组件树的层级冗余等问题。而自定义 Hook 的使用可以很好的解决此类问题
创建自定义 Hook:
自定义 Hook 是一个函数,其名称以 “use” 开头,函数内部可以调用其他的 Hook。以下就是实时获取鼠标位置的自定义 Hook 实现:
import { useEffect, useState } from "react"export const useMouse = () => {const [position, setPosition] = useState({x: null,y: null});useEffect(() => {const moveHandler = (e) => {setPosition({x: e.screenX,y: e.screenY});};document.addEventListener('mousemove', moveHandler);return () => {document.removeEventListener('mousemove', moveHandler);};}, []);return position;
}
使用自定义 Hook:
自定义 Hook 的使用规则与 Hook 使用规则基本一致,以下是 useMouse 自定义 Hook 的使用过程:
import React from 'react';
import { useMouse } from '../hooks/useMouse';export default function MouseMove() {const { x, y } = useMouse();return (<><p>Move mouse to see changes</p><p>x position: {x}</p><p>y position: {y}</p></>);
}
每次使用自定义 Hook 时,React 都会执行该函数来获取独立的 state 和执行独立的副作用函数,所有 state 和副作用都是完全隔离的
相关文章:
React的hooks---自定义hooks
通过自定义 Hook,可以将组件逻辑提取到可重用的函数中,在 Hook 特性之前,React 中有两种流行的方式来共享组件之间的状态逻辑:render props和高阶组件,但此类解决方案会导致组件树的层级冗余等问题。而自定义 Hook 的使…...
Asp.Net 使用Log4Net (基础版)
Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台,并运行以下命令来安装Log4Net: mathemati…...
STM32 互补PWM 带死区 HAL
1、设置PWM波频率100KHz,占空比50%,死区时间1us 2、 while 循环之前启动PWM HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //启动TIM1_CH1 PWM输出 HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1N PWM输出 3、死区计算 DT_time…...
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言: AES-128加密的ts视频切片【第一个】,打开有时间限制的! https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…...
使用Python实现产品图片自动化处理
大家好,在当今的数字化时代,产品图片在电子商务和市场营销中发挥着至关重要的作用。然而,为在线平台准备产品图片可能是一项耗时的任务,本文将分享一个Python脚本,用于自动化产品图片的图像处理工作流程。通过使用Pyth…...
在CSDN学Golang云原生(git)
一,git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似,通常包括以下步骤: 创建分支:在本地代码库中创建一个新的分支,该分支用于开发新功能或修复错误。编写代码:在创建的分支上进行编码&am…...
QT多线程编程基础
文章目录 前言一、线程,进程 介绍二、创建线程三、终止线程总结 前言 一、线程,进程 介绍 线程: 是操作系统中独立运行的最小单位。每个线程都有自己的执行路径、程序计数器、堆栈和一组寄存器。线程共享进程的资源,如内存和文件…...
TRT4-trt-integrate - 3 使用onnxruntime进行onnx的模型推理过程
前言: onnx是microsoft开发的一个中间格式,而onnxruntime简称ort是microsoft为onnx开发的推理引擎。允许使用onnx作为输入进行直接推理得到结果。 py接口的推理过程: main函数: if __name__ "__main__":session onn…...
layui+drogon完成文件上传(简例)
layui界面加入按钮、文本框、进度条: <div class"layui-row"><button type"button" class"layui-btn" id"file_upload_control">文件上传</button><input type"file" id"files_input…...
高精度地图服务引擎项目
技术栈:使用vue3TypeScriptElement PlusPiniaaxios 项目描述:高精度地图服务引擎项目,提供轻量化处理3D瓦片切片分布式处理分发服务的一站式解决方案 工作内容:1、项目60%已上的页面开发 2、部分模块的功能实现, 3、封…...
PyTorch使用Transformer进行机器翻译
文章目录 简介数据集环境要求实验代码实验结果参考来源 简介 本文使用PyTorch自带的transformer层进行机器翻译:从德语翻译为英语。从零开始实现Transformer请参阅PyTorch从零开始实现Transformer,以便于获得对Transfomer更深的理解。 数据集 Multi30…...
LoadRunner使用教程
1. LoadRunner简介 LoadRunner是一款广泛使用的性能测试工具 可以对各种应用程序进行性能测试,包括Web应用程序、移动应用程序、企业级应用程序等。它提供了一个综合的性能测试解决方案,包括测试计划设计、脚本录制、测试执行、结果分析和报告生成等功…...
Zia和ChatGPT如何协同工作?
有没有集成ChatGPT的CRM系统推荐?Zoho CRM已经正式与ChatGPT集成。下面我们将从使用场景、使用价值和使用范围等方面切入讲述CRMAI的应用和作用。 Zia和ChatGPT如何协同工作? Zia和ChatGPT是不同的人工智能模型,在CRM中呈现出共生的关系。 …...
【位操作】——获取整数变量最低位为 1 的位置
获取整数变量最低位为 1 的位置 #define BIT_LOW_BIT(y) (((y)&BIT(0)) ? 0 : (((y)&BIT(1)) ? 1 : (((y)&BIT(2)) ? 2 : (((y)&BIT(3)) ? 3 : \(((y)&BIT(4)) ? 4 : (((y)&BIT(5)) ? 5 : (((y)&BIT(6)) ? 6 : (((y)&…...
gtest测试用例注册及自动化调度机制源代码流程分析
gtest的入门参见: 玩转Google开源C单元测试框架Google Test系列(gtest) gtest源码分析流程参见: gtest流程解析 测试用例注册流程分析要点:TEST_F宏替换、C静态成员的动态初始化。 自动化调度流程分析要点:UnitTest、UnitTestIm…...
IOS自动化测试环境搭建教程
目录 一、前言 二、环境依赖 1、环境依赖项 2、环境需求与支持 三、环境配置 1、xcode安装 2、Git安装 3、Homebrew安装(用brew来安装依赖) 4、npm和nodejs安装 5、libimobiledevice安装 6、idevicesinstaller安装 7、ios-deploy安装 8、Ca…...
常用API学习08(Java)
格式化 格式化指的是将数据按照指定的规则转化为指定的形式 。 那么为什么需要格式化?格式化有什么用? 以数字类为例,假设有一个比分牌,在无人得分的时候我们希望以:“00:00”的形式存在,那么…...
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们? 在TypeScript中,装饰器(Decorators)是一种用于增强代码功能的特殊类型声明。装饰器提供了一种在类、方法、…...
Jenkins 还可以支持钉钉消息通知?一个插件带你搞定!
Jenkins 作为最流行的开源持续集成平台,其强大的拓展功能一直备受测试人员及开发人员的青睐。大家都知道我们可以在 Jenkins 中安装 Email 插件支持构建之后通过邮件将结果及时通知到相关人员。 但其实 Jenkins 还可以支持钉钉消息通知,其主要通过 Ding…...
7.ES使用
ES多条件查询 and , or这种的 ES模糊查询 like这种的 {"wildcard": {"title.keyword": {"value": "*宣讲*"}}}说明: title是要匹配的关键字段名称keyword是属性,表示匹配的是关键字信息,如果不用.ke…...
Phi-3-mini-4k-instruct-gguf效果实测:单卡3090上并发3路问答的延迟与显存占用
Phi-3-mini-4k-instruct-gguf效果实测:单卡3090上并发3路问答的延迟与显存占用 1. 测试背景与模型介绍 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本,专为问答、文本改写、摘要整理和简短创作等场景优化。作为一款开箱即…...
NaViL-9B多模态实战:社交媒体长图理解+争议点识别+评论生成
NaViL-9B多模态实战:社交媒体长图理解争议点识别评论生成 1. 平台简介 NaViL-9B是上海人工智能实验室研发的原生多模态大语言模型,具备强大的文本理解和图像分析能力。与单一模态模型不同,NaViL-9B能够同时处理文字和图片输入,实…...
BililiveRecorder全攻略:高效录制B站直播的实战指南
BililiveRecorder全攻略:高效录制B站直播的实战指南 【免费下载链接】BililiveRecorder 录播姬 | mikufans 生放送录制 项目地址: https://gitcode.com/gh_mirrors/bi/BililiveRecorder 在数字内容爆炸的时代,直播内容因其即时性和互动性成为珍贵…...
5个维度解锁PPTist:浏览器端演示文稿创作的开源解决方案
5个维度解锁PPTist:浏览器端演示文稿创作的开源解决方案 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing …...
Z-Image-GGUF文生图案例分享:看看AI能画出多美的图片
Z-Image-GGUF文生图案例分享:看看AI能画出多美的图片 1. 开篇:当文字遇见画笔 想象一下,你只需要输入一段描述,就能得到一张精美的图片。这不是科幻电影里的场景,而是Z-Image-GGUF带给我们的现实体验。作为阿里巴巴通…...
如何用OpenRPA实现企业级流程自动化?开源RPA工具完整指南
如何用OpenRPA实现企业级流程自动化?开源RPA工具完整指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 在数字化转型浪潮中,企业面临着效率瓶颈与成本压力的双重挑战。…...
Qwen3.5-9B镜像安全加固:非root用户运行+端口绑定限制+HTTPS代理配置
Qwen3.5-9B镜像安全加固:非root用户运行端口绑定限制HTTPS代理配置 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解(图文输入)和长上下文处理&a…...
长尾关键词SEO优化费用如何计算_企业自营SEO关键词优化成本是多少
长尾关键词SEO优化费用如何计算_企业自营SEO关键词优化成本是多少 在当今数字化时代,SEO(搜索引擎优化)已经成为企业提升网站流量、增加品牌曝光度的重要手段。其中,长尾关键词SEO优化因其较低的竞争度和高转化率,备受…...
忍者像素绘卷惊艳效果展示:鸣人螺旋丸像素绘卷作品集
忍者像素绘卷惊艳效果展示:鸣人螺旋丸像素绘卷作品集 1. 像素艺术新纪元:忍者世界的视觉革命 当传统漫画遇上16-bit复古美学,忍者像素绘卷为我们打开了一扇通往全新视觉体验的大门。这款基于Z-Image-Turbo深度优化的图像生成工作站…...
Graphormer保姆级教学:Supervisor配置文件(graphormer.conf)逐行注释
Graphormer保姆级教学:Supervisor配置文件(graphormer.conf)逐行注释 1. Graphormer简介 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计…...
