自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 使用 redux 做主题切换

,},},},});“我们系统中采用 Redux 管理全局主题状态,切换主题后会自动通知所有订阅组件刷新样式,组件通过获取 theme 状态,页面统一使用theme-dark类名控制样式变量。同时也支持持久化到 localStorage,下次打开时自动恢复。

2025-07-06 16:38:33 117

原创 企业 OA 系统

OA 系统侧重流程管理和提升办公效率,而ERP 系统则更关注企业运营中的资源统筹与计划管理。维度ERP 系统OA 系统目标管理企业资源,计划与运营管理办公流程,提高沟通效率核心模块财务、库存、采购、销售、生产审批、考勤、公告、文件、日程用户角色财务、采购、销售、生产人员员工、行政、人事、管理者数据类型财务数据、库存数据、业务单据流程数据、文件、审批记录工作特性强业务规则、可量化强流程控制、协同为主。

2025-06-30 15:46:40 401

原创 TypeScript

常用于泛型约束,代表非原始类型的一种类型,不支持 原始类型,支持所有 引用类型。可以理解成 new Object,和第一个一样,原始类型 和 引用类型 都可以。1. top type:顶级类型 any unknown,可以包含下面所以类型。(1)unknown 不可以赋值给别的类型的,只能赋值给自身或者 any。虽然字面量模式可以赋值任意类型,但是赋值之后无法修改。所有原始类型以及对象类型都指向 Object。在 ts 中,Object 表示包含所有类型。生成 package.json。

2025-05-25 14:53:47 427

原创 国内镜像源

再执行一遍 mmp use,可以切换回 npm。下载小满的包 类似于 nrm。

2025-05-25 13:27:20 180

原创 前端项目部署 & 打包上线

如果拿到的项目没有 node_modules,要执行npm i安装所有的依赖。

2025-05-24 13:34:50 562

原创 React 与 TypeScript 极客园移动端

(2)限制 useState 函数的参数必须满足类型为:User | () => User | undefined。(1)限制 useState 函数参数的初始值必须满足类型为:User | () => User。(2)绑定 prop 时如果绑定内联函数直接可以推断出参数类型,否则需要单独注解匹配的参数类型。组件经常执行类型为函数的 prop 实现子传父,这类 prop 重点在于函数参数类型的注解。(2)限制 setUser 函数的参数类型可以是 User | null。

2025-05-22 16:06:20 666

原创 Class 类组件

(2)componentWillUnmount:组件卸载时自动执行 - 清理副作用。(1)componentDidMount:组件挂载完毕自动执行 - 异步数据获取。概念:类组件和 Hooks 编写的组件在组件通信的思想上完全一致。(3)通过 render 来写 UI 模版 (JSX语法一致)(2)子传父:通过 prop 绑定父组件中的函数,子组件调用。类组件就是通过 JS 中的类来阻止组件的代码。(3)兄弟通信:状态提升,通过父组件做桥接。(1)父传子:通过 prop 绑定数据。

2025-05-22 12:44:55 330

原创 zustand

对于异步的支持不需要特殊的操作,直接在函数中编写异步逻辑,最后只需要调用 set 方法传入新状态即可。场景:当单个 store 比较大的时候,可以采用 切片模式 进行模块拆分组合,类似于模块化。

2025-05-22 12:34:19 209

原创 项目制作流程

3. 在 router/index.js 文件中引入组件进行路由配置,导出 router 实例。有些路由页面的内容信息比较敏感,如果用户没有经过登录获取到有效 Token,是没有权限跳转的,实现效果:页面在刷新时可以根据当前的路由路径让对应的左侧菜单高亮显示。(1)redux 中编写获取 Token 的 异步获取和同步修改。(1)菜单参数 Item 中 key 属性换成路由的路由地址。(2)找到菜单组件负责高亮的属性,绑定当前的路由路径。(2)点击菜单时通过 key 获取路由地址跳转。

2025-05-18 16:47:40 2034

原创 英语单词 适配 中文名称

【代码】英语单词 适配 中文名称。

2025-05-16 19:39:00 92

原创 账单统计区域 mobile

2. 点击取消 / 确认按钮以及蒙层区域的都可以关闭弹框。3. 弹框关闭时箭头朝下,打开时箭头朝上。2. 通过切换状态变化实现功能。1. 点击打开时间选择弹框。1. 准备一个状态数据。

2025-05-16 15:09:33 161

原创 antd mobile 点击 TabBar 切换页面

switchRoute 函数,navigate 点击的 path。

2025-05-15 21:05:40 286

原创 git 指令

新建本地 git 仓库,提交到远程 git 仓库里。

2025-05-15 19:35:06 98

原创 antd 主题色定制

antd-mobile 中的主题变量也是在 :root 下声明的,所以在有些情况会由于优先级的问题无法覆盖。通过 :root:root 显式地让你所写内容的优先级更高一些,确保主题变量的成功覆盖。全局文件 theme.css。全局文件 theme.css。整个应用范围内的组件都生效。只在某些元素内部的组件生效。

2025-05-15 19:25:57 296

原创 mock 数据( json-server )

1. 在项目中安装 json-server。2. 准备一个 json 文件。4. 访问接口进行测试。

2025-05-15 17:50:14 289

原创 配置别名路径 @

CRA本身把webpack配置包装到了黑盒里无法直接修改,需要借助一个插件 - craco。

2025-05-15 17:03:21 299

原创 react-router基本写法

1. 创建项目并安装所有依赖2. 安装所有的 react router 包3. 启动项目index.js。

2025-05-14 22:00:34 379

原创 左右联动菜单代码 & 分类标题吸顶效果

id就相当于 HTML 的锚点跳转,Taro 会自动把那个带指定 id 的子元素滚动到可视区域。

2025-05-14 14:00:57 238

原创 react 基本写法

一般思路:(1)编写一个use打头的函数(2)函数内部编写封装的逻辑(3)return 出去组件中用到的状态和方法(4)组件中调用函数解构赋值使用// 封装请求数据的 hookgetList();}, []);return {调用。

2025-05-13 11:04:59 350

原创 Promise 自定义封装

因为 callback 只属于 return 的新 Promise,所以放在 return 里面,既避免污染作用域,又节省内存,还保证每次都是干净独立的 callback。

2025-04-29 01:41:51 258

原创 Promise 基础

【代码】Promise。

2025-04-25 21:37:02 183

原创 antd4 主题色变换

【代码】antd4 主题色变换。

2025-04-25 13:07:51 100

原创 webpack相关配置--react-cli

【代码】webpack相关配置--react-cli。

2025-04-24 22:32:04 168

原创 ESLint报错:eslint.config.mjs

在学习webpack代码分割,按需加载时,ESLint检查import报错,因为ESLint不支持动态导入。通过ESLint解析器。

2025-04-22 23:33:29 262

原创 webpack相关配置--高级

本章节主要介绍 Webpack 高级配置。所谓高级配置其实就是进行 Webpack 优化,让我们代码在编译/运行时性能更好~

2025-04-20 20:06:36 2086

原创 webpack相关配置--初级

webpack 本身只能处理 js、json 等资源,其他资源需要借助 loader,Webpack 才能解析。原因是 Webpack 对 js 处理是有限的,只能编译 js 中 ES 模块化语法,不能编译其他语法。其次开发中,团队对代码格式是有严格要求的,我们不能由肉眼去检测代码格式,需要使用专业的工具来检测。有人可能会问,js 资源 Webpack 不能已经处理了吗,为什么我们还要处理呢?开发中一点点写 rules 规则太费劲了,所以有更好的办法,继承现有的规则。(3) extends 继承。

2025-04-19 21:02:57 1519

原创 axios 封装

但是Fetch的缺点也很明显,首先需要明确的是Fetch是一个 low-level(底层)的API,没有帮助你封装好各种各样的功能和实现;Fetch是AJAX的替换方案,基于Promise设计,很好的进行了关注分离,有很大一批人喜欢使用fetch进行项目开发;比如发送网络请求需要自己来配置Header的Content-Type,不会默认携带cookie等;axios是目前前端使用非常广泛的网络请求库,包括Vue作者也是推荐在vue中使用axios;比如不支持取消一个请求,不能查看一个请求的进度等等;

2025-04-17 21:44:05 309

原创 jwt问题

如果有人对头部以及负载内容解码后进行修改,再进行编码,最后加上之前的签名组合形成新的JWT的话,那么服务器端会判断出新的头部和负载形成的签名和JWT上附带的签名是不一样的。如果要对新的头部和负载进行签名,由于不知道服务器加密时使用的秘钥,得出来的结果也是不一样的。拿到编码后的 header 和 编码后的 payload 使用 密码进行签名。Signature需要使用编码后的header和payload以及我们提供的一个秘钥,然后使用header中指定的签名算法进行签名,签名的作用是保证JWT没有被篡改过。

2025-04-16 22:08:04 219

原创 flex响应式布局

【代码】flex响应式布局。

2025-04-16 14:05:32 350

原创 CSS样式

【代码】CSS样式。

2025-04-16 13:11:45 143

原创 redux-toolkit 相关问题

如果你的异步操作较为简单,且你希望 Redux 管理整个异步请求的生命周期(包括 pending、fulfilled 和 rejected 状态),那么。:在这种方式中,你需要手动管理异步操作的状态,例如 loading、error 等。如果你需要更多的控制,或者异步操作较为复杂(例如依赖多个异步操作、需要额外的逻辑等),则直接使用。提供了许多自动化的功能,但在复杂的异步逻辑(如多步异步请求、依赖关系)中,它可能不如手动。适用于:复杂的异步操作(如处理多个依赖的请求、多个步骤的异步操作等)。

2025-04-15 23:06:27 946

原创 子组件传参的方式

父组件通过props将一个回调函数传递给子组件。子组件可以在需要的时候调用回调函数,将数据传递给父组件。但是,这种方法是在子组件里触发的,有没有在父组件里触发的方法。有,子组件暴露方法给父组件,让父组件手动调用。是一个非常经典的的场景,这在 React 中是完全可以实现的,关键是使用forwardRef和这两个 Hook 组合。

2025-04-15 13:18:29 300

原创 token相关问题

比如:一个账号只能在一台设备登录,如果用户在别的设备登录了,之前的 refreshToken 会被废弃。如果你实现了退出逻辑,比如点击“退出登录”会清除 refreshToken,那自动登录自然就失效了。用户输入账号密码 → 发请求给后端 → 后端验证成功后返回 token。这样用户第一次进入页面时,如果本地没有 token,就尝试刷新获取。本地没有 refreshToken,就不能换取新 token。已经过期,就不能换新 token 了。,但 HTTP 状态是 200,被用户清理,或被某些插件修改。

2025-04-14 23:18:40 330

原创 form表单数据回填

进入 Publish 页面判断是否有 id (是否是编辑)是 → 发送 GET 请求获取文章详情解析 data,回填 form、封面图、图片类型页面表单完成初始化,用户可以继续编辑或修改。

2025-04-13 15:03:31 175

原创 提取封面图 URL 的原理和过程

在表单中,你用了antd的Upload上传时会自动把图片发给action指定的后端地址,后端返回图片地址。你监听onChange拿到图片上传的结果。fileList。

2025-04-13 14:44:33 270

原创 状态引用发生变化,useEffect 就会触发

即便 page 是同一个值,只要对象引用变化,就会触发 effect。这样可以保证总是生成一个新对象,防止某些场景下不触发更新。本来就是 1,为什么再设一次。来判断是否触发,而不是按值。,也能触发刷新列表?

2025-04-13 11:45:23 208

原创 Antd组件,面包屑写法 Breadcrumb

【代码】Antd组件,面包屑写法 Breadcrumb。

2025-04-13 10:11:36 35

原创 React 路由懒加载(lazy loading)

按需加载模块,只在用户访问某个页面时才加载对应组件,减少首屏加载体积、提升性能。Suspense是的,React 的懒加载组件<Suspense>,否则运行时报错。fallback属性用来定义加载中的提示内容。包装后,React 会等组件被真正渲染时,才去加载对应模块。

2025-04-12 22:22:30 303

原创 React Router + Antd Menu 与路由有关的问题

将菜单项的 key 从'1'变成。

2025-04-12 18:44:00 496

原创 css样式记忆

rgb(0 0 0 / 10%) => 阴影颜色:黑色,透明度为 10%50px => 模糊半径:50px(阴影很模糊,范围大)0 => 水平偏移(x 轴):无偏移。0 => 垂直偏移(y 轴):无偏移。

2025-04-12 13:45:29 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除