debounce react hook
vue/react关与key的面试题
虚拟dom中key的作用 当状态中的数据发生改变时,react会根据新数据生成新的虚拟dom,随后react进行新虚拟dom与旧虚拟dom的diff算法比较,比较规则如下: 1.旧虚拟dom找到了与新虚拟dom相同的key a.若虚拟dom中的内容没变,则使用之前的真实dom b.若虚拟dom中的内 ......
【笔记】electron + react + antd
electron Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Li ......
React 限制 Props 和 State 类型
下面是 Component 的接口,P 代表 Props、S 代表 State。 interface Component<P = {}, S = {}, SS = any> extends ComponentLifecycle<P, S, SS> { } 所以,在 tsx 中写两个类型进行约束就可以 ......
react项目中聊天界面新增对话自动滚动到底部
class组件写法1 class Messages extends React.Component { const messagesEndRef = React.createRef() componentDidMount () { this.scrollToBottom() } componentD ......
react的diff算法
diff策略 React用 三大策略 将O(n^3)复杂度 转化为 O(n)复杂度 策略一(tree diff): Web UI中DOM节点跨层级的移动操作特别少,可以忽略不计。 策略二(component diff): 拥有相同类的两个组件 生成相似的树形结构, 拥有不同类的两个组件 生成不同的树 ......
2023 年最新最全的 React 面试题
React 作为前端使用最多的框架,必然是面试的重点。我们接下来主要从 React 的使用方式、源码层面和周边生态(如 redux, react-router 等)等几个方便来进行总结。 1. 使用方式上 这里主要考察的是,在开发使用过程中,对 React 框架的了解,如 hook 的不同调用方式得 ......
monorepo实践:yarn workspace + vite + typescript + react
前言 最近需要用到多包管理 monorepo 开发新项目,所以提前预研一下项目搭建。 monorepo(monolithic repository)是一种项目架构,就是用一个仓库管理多个项目(应用,库),react和babel的源码仓库都是用这种方式在管理。 优缺点略过,可以参考:精读《Monore ......
react 高效高质量搭建后台系统 系列 —— 结尾
其他章节请看: react 高效高质量搭建后台系统 系列 尾篇 本篇主要介绍表单查询、表单验证、通知(WebSocket)、自动构建。最后附上 myspug 项目源码。 项目最终效果: 表单查询 需求:给角色管理页面增加表格查询功能,通过输入角色名称,点击查询,从后端检索出相应的数据。 效果如下: ......
react 高效高质量搭建后台系统 系列 —— 前端权限
其他章节请看: react 高效高质量搭建后台系统 系列 权限 本系列已近尾声,权限是后台系统必不可少的一部分,本篇首先分析spug项目中权限的实现,最后在将权限加入到我们的项目中来。 spug 中权限的分析 权限示例 比如我要将应用发布模块的查看权限分给某用户(例如 pjl),可以这样操作: 在角 ......
Jest + React 单元测试最佳实践
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 前言 单元测试是一种用于测试“单元”的软件测试方法,其中“单元”的意思是指软件中各个独立的组件或模块。开发者需要为他们的代码编写测试用例以确保这些代码可以正常使用。 在 ......
react中redux怎么使用
一、redux是什么? redux 就是react 全局状态管理,作用是存放全局数据 二、核心 state:存放数据 reducer:修改仓库数据 是一个函数,参数一:仓库中的数据,参数2:行为 actions 返回值就是 最新的仓库数据 就是在reduce中定义的方法,修改数据,相当于mutati ......
React Native学习笔记----React Native简介与环境安装
React Native 的基础是React, 是在 web 端非常流行的开源 UI 框架。要想掌握 React Native,先了解 React 框架本身是非常有帮助的。 一、什么是React Native 1.1 React Native带来的惊喜 React Native 是一个使用JavaS ......
Windows下x86和x64平台的Inline Hook介绍
Windows下Inline Hook技术可以用来拦截一个指定的函数,并使其跳转到指定的地址执行相应的程序,从而实现某种想要的效果,本文介绍了x86和x64平台下Inline Hook的原理和基本使用方法,着重于x64下可行的方案,以及适用于多线程的方法。 ......
Vue/ React/ Angular 前端项目在 Web 服务器上的部署配置
Web 服务器是一种用于存储,处理和传输 Web 内容的软件。它是一种特殊类型的服务器,具有处理 HTTP 请求并向浏览器返回 Web 页面和其他内容的能力。Web服务器支持多种编程语言,如 PHP,JavaScript,Ruby,Python 等,并且支持动态生成 Web 页面。常见的 Web 服 ......
一文详解如何在基于webpack5的react项目中使用svg
本文主要讨论基于webpack5+TypeScript的React项目(cra、craco底层本质都是使用webpack,所以同理)在2023年的今天是如何在项目中使用svg资源的。 首先,假定您已经完成基于webpack5+TypeScript的React项目的搭建工作(如果您不太清楚搭建的背景, ......
玩转web3第一篇——web3-react
概况 web3-react是由Noah Zinsmeister开发的一个web3框架,主要功能是实时获取DApp里的关键数据(如用户当前连接的地址、网络、余额等)。 Noah也是著名的去中心化交易所uniswap里的工程师,因此这个库在uniswap里也已被大量的使用。 web3-react有两个版 ......
react 高效高质量搭建后台系统 系列 —— 系统布局
其他章节请看: react 高效高质量搭建后台系统 系列 系统布局 前面我们用脚手架搭建了项目,并实现了登录模块,登录模块所依赖的请求数据和antd(ui框架和样式)也已完成。 本篇将完成系统布局。比如导航区、头部区域、主体区域、页脚。 最终效果如下: spug 中系统布局的分析 spug 登录成功 ......
react 高效高质量搭建后台系统 系列 —— 表格的封装
其他章节请看: react 高效高质量搭建后台系统 系列 表格 有一种页面在后台系统中比较常见:页面分上下两部分,上部分是 input、select、时间等查询项,下部分是查询项对应的表格数据。包含增删改查,例如点击新建进行新增操作。就像这样: 本篇将对 ant 的表格进行封装。效果如下: spug ......
react无效渲染优化--工具篇
壹 ❀ 引 本文属于我在公司的一篇技术分享文章,它在我之前 React性能优化,六个小技巧教你减少组件无效渲染一文的基础上进行了拓展,增加了工具篇以及部分更详细的解释,所以内容上会存在部分重复,以下是分享的原文。 在过去一段时间,好像每次代码走读大家都对于useMemo、useCallback以及m ......
react 高效高质量搭建后台系统 系列 —— 登录
其他章节请看: react 高效高质量搭建后台系统 系列 登录 本篇将完成登录模块。效果和 spug 相同: 需求如下: 登录页的绘制 支持普通登录和LDAP登录 登录成功后跳转到主页,没有登录的情况下访问系统会重定向到登录页,登录成功后再次回到之前的页面。系统会话过期后,请求会重定向到登录页。 T ......
如何实现在react现有项目中嵌入Blazor?
如何实现在react现有项目中嵌入Blazor? 目前官方只提供了angular和react俩种示例所以本教程只讲react教程 思路讲解: 首先在现有react项目中我们可能某些组件是在Blazor中完成,但是我们没办法找到怎么在react中轻量级使用blazor组件,可能会有人会使用iframe ......
React中实现keepalive组件缓存效果
背景:由于react官方并没有提供缓存组件相关的api(类似vue中的keepalive),在某些场景,会使得页面交互性变的很差,比如在有搜索条件的表格页面,点击某一条数据跳转到详情页面,再返回表格页面,会重新请求数据,搜索条件也将清空,用户得重新输入搜索条件,再次请求数据,大大降低办公效率,如图: ......
react 高效高质量搭建后台系统 系列 —— 请求数据
其他章节请看: react 高效高质量搭建后台系统 系列 请求数据 后续要做登录模块(主页),需要先和后端约定JSON数据格式,将 axios 进行封装,实现本地的数据模拟 mockjs。 Tip:spug 中后端返回 json 通常有 data 和 error两个 key。就像这样:{data: ......
react 高效高质量搭建后台系统 系列 —— 脚手架搭建
其他章节请看: react 高效高质量搭建后台系统 系列 脚手架搭建 本篇主要创建新项目 myspug,以及准备好环境(例如:安装 spug 中用到的包、本地开发和部署、自定义配置 react-app-rewired、代理 http-proxy-middleware、babel),为后续搭建真正的框 ......
react 高效高质量搭建后台系统 系列 —— antd和样式
其他章节请看: react 高效高质量搭建后台系统 系列 antd 后续要做登录模块(主页),不仅要解决请求数据的问题,还需要完成 antd 配置以及样式的准备。 antd 多种主题风格 详情请看 这里 spug 没有提供多种主题风格。 笔者还是决定稍作研究,万一公司需要呢。 步骤如下: 安装 le ......
重新捋一捋React源码之更新渲染流程
前言 前些天在看Dan Abramov个人博客(推荐阅读,站在React开发者的角度去解读一些API的设计初衷和最佳实践)里的一篇文章,其重点部分的思想就是即使不使用Memo(),也可以通过组合的方式来减少组不必要的渲染。 作者在放出代码讲述结论的时候并没有细说原理只是一笔带过,所以笔者自己想着从R ......
before-after-hook钩子函数
before-after-hook 最近看别人的代码,接触到一个插件,before-after-hook,百度搜一圈也没有看到什么地方有教程,看这个字面意思是一个hook,和axios里面的拦截器,vue-router里面的导航守卫类似。插件名字暂且叫它“前后钩子”吧,本文简单介绍这个插件的使用方法 ......
在windows下导入react项目并且打包编译后部署到nginx上
在windows下导入react项目并且打包编译后部署到nginx上 一、安装npm 二、创建react项目 三、安装nginx 四、总结 最近接手了公司的一个django项目,这是应该前后端分离的项目,前端使用react编写,由于之前没用过react,所以在配置时遇到了一些问题,现在记录下来。 一 ......
React DevUI 18.0 正式发布🎉
2021年11月,由 Jay 主导发起了 React DevUI 开源组件库项目,经过一年多的孵化?,终于在`2022年11月23日`发布 18.0.0 正式版本? ......