- 博客(52)
- 收藏
- 关注
原创 如何学习 AG-UI 和 CopilotKit
AG-UI(Agent UI)是一套做前端 UI 的组件库,用来:做聊天界面(Chat UI)用户指令栏(Taskbar)动态卡片 / 流水线(Actions + Results)和 AI 状态同步的控件(Copilot Views)
2025-12-06 18:18:33
1292
原创 commitizen,cz-git,husky 三者区别
目的:让开发者不需要自己思考 commit message 规则。它和 Commitizen、cz-git 完全不是一个类型。✔ 自动对提交做 lint / prettier 格式化。时自动运行 commitlint(验证提交格式)提供好看的 UI,帮助你写规范的 commit。✔ 自动提示填写 commit message。✔ 只有符合规范的 commit 才能提交。✔ 避免垃圾 commit message。✔ 每次 commit 必须使用规范格式。它让“选择题式 commit”更好用。
2025-12-01 15:30:04
695
原创 如何学习 react native 和 Expo
掌握 React Native 核心组件(视图、文本、样式、交互)学会使用 跳转页面学习 Expo 常用模块(如图片、通知、存储)尝试项目开发 + 真机测试(Expo Go)理解 build / 打包流程(EAS Build) 不建议只看 Expo 文档。📘 Expo 官方文档(https://docs.expo.dev):主要讲的是 Expo 特有的内容(如 ImagePicker、AppLoading、Push 通知、expo-router、预构建等)。📘 React Native 官方文档(
2025-08-09 12:01:17
939
原创 react native 常见问题
对比点导航方式栈式压入(前进/返回)标签切换(平级跳转)UI 表现页面滑动进入,有返回按钮底部栏切换,通常无返回按钮常用场景登录页、详情页、操作流程页首页、我的、设置等主模块页面状态页面切换后销毁(默认)页面保留状态(除非配置卸载)组件名功能对应平台原生控件View布局容器iOS:UIView/ Android:ViewGroupText显示文字iOS:UILabel/ Android:TextViewImage图片展示iOS:/ Android:ImageView。
2025-08-05 13:11:21
1070
原创 react native 使用 Expo 的结构模版
Expo 是 React Native 的高效开发套件,让你像开发 Web 应用一样开发 App,不需要配置 Xcode/Android Studio,支持扫码预览、热更新和云构建,是 Web 前端开发 App 的首选入门方式。
2025-08-03 18:48:36
997
原创 react 和 react native 的开发过程区别
开发项React页面跳转表单处理Formik / react-hook-form(自适配 RN)文件上传需使用原生模块(ImagePicker、DocumentPicker)通知权限浏览器原生通知原生模块(如调用摄像头等硬件基本不涉及需使用原生模块(如。
2025-08-02 15:37:48
948
原创 使用 redux 做主题切换
,},},},});“我们系统中采用 Redux 管理全局主题状态,切换主题后会自动通知所有订阅组件刷新样式,组件通过获取 theme 状态,页面统一使用theme-dark类名控制样式变量。同时也支持持久化到 localStorage,下次打开时自动恢复。
2025-07-06 16:38:33
193
原创 企业 OA 系统
OA 系统侧重流程管理和提升办公效率,而ERP 系统则更关注企业运营中的资源统筹与计划管理。维度ERP 系统OA 系统目标管理企业资源,计划与运营管理办公流程,提高沟通效率核心模块财务、库存、采购、销售、生产审批、考勤、公告、文件、日程用户角色财务、采购、销售、生产人员员工、行政、人事、管理者数据类型财务数据、库存数据、业务单据流程数据、文件、审批记录工作特性强业务规则、可量化强流程控制、协同为主。
2025-06-30 15:46:40
649
原创 TypeScript
常用于泛型约束,代表非原始类型的一种类型,不支持 原始类型,支持所有 引用类型。可以理解成 new Object,和第一个一样,原始类型 和 引用类型 都可以。1. top type:顶级类型 any unknown,可以包含下面所以类型。(1)unknown 不可以赋值给别的类型的,只能赋值给自身或者 any。虽然字面量模式可以赋值任意类型,但是赋值之后无法修改。所有原始类型以及对象类型都指向 Object。在 ts 中,Object 表示包含所有类型。生成 package.json。
2025-05-25 14:53:47
531
原创 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
806
原创 Class 类组件
(2)componentWillUnmount:组件卸载时自动执行 - 清理副作用。(1)componentDidMount:组件挂载完毕自动执行 - 异步数据获取。概念:类组件和 Hooks 编写的组件在组件通信的思想上完全一致。(3)通过 render 来写 UI 模版 (JSX语法一致)(2)子传父:通过 prop 绑定父组件中的函数,子组件调用。类组件就是通过 JS 中的类来阻止组件的代码。(3)兄弟通信:状态提升,通过父组件做桥接。(1)父传子:通过 prop 绑定数据。
2025-05-22 12:44:55
440
原创 zustand
对于异步的支持不需要特殊的操作,直接在函数中编写异步逻辑,最后只需要调用 set 方法传入新状态即可。场景:当单个 store 比较大的时候,可以采用 切片模式 进行模块拆分组合,类似于模块化。
2025-05-22 12:34:19
305
原创 项目制作流程
3. 在 router/index.js 文件中引入组件进行路由配置,导出 router 实例。有些路由页面的内容信息比较敏感,如果用户没有经过登录获取到有效 Token,是没有权限跳转的,实现效果:页面在刷新时可以根据当前的路由路径让对应的左侧菜单高亮显示。(1)redux 中编写获取 Token 的 异步获取和同步修改。(1)菜单参数 Item 中 key 属性换成路由的路由地址。(2)找到菜单组件负责高亮的属性,绑定当前的路由路径。(2)点击菜单时通过 key 获取路由地址跳转。
2025-05-18 16:47:40
2154
原创 账单统计区域 mobile
2. 点击取消 / 确认按钮以及蒙层区域的都可以关闭弹框。3. 弹框关闭时箭头朝下,打开时箭头朝上。2. 通过切换状态变化实现功能。1. 点击打开时间选择弹框。1. 准备一个状态数据。
2025-05-16 15:09:33
262
原创 antd 主题色定制
antd-mobile 中的主题变量也是在 :root 下声明的,所以在有些情况会由于优先级的问题无法覆盖。通过 :root:root 显式地让你所写内容的优先级更高一些,确保主题变量的成功覆盖。全局文件 theme.css。全局文件 theme.css。整个应用范围内的组件都生效。只在某些元素内部的组件生效。
2025-05-15 19:25:57
456
原创 mock 数据( json-server )
1. 在项目中安装 json-server。2. 准备一个 json 文件。4. 访问接口进行测试。
2025-05-15 17:50:14
418
原创 react 基本写法
一般思路:(1)编写一个use打头的函数(2)函数内部编写封装的逻辑(3)return 出去组件中用到的状态和方法(4)组件中调用函数解构赋值使用// 封装请求数据的 hookgetList();}, []);return {调用。
2025-05-13 11:04:59
504
原创 Promise 自定义封装
因为 callback 只属于 return 的新 Promise,所以放在 return 里面,既避免污染作用域,又节省内存,还保证每次都是干净独立的 callback。
2025-04-29 01:41:51
383
原创 ESLint报错:eslint.config.mjs
在学习webpack代码分割,按需加载时,ESLint检查import报错,因为ESLint不支持动态导入。通过ESLint解析器。
2025-04-22 23:33:29
428
原创 webpack相关配置--高级
本章节主要介绍 Webpack 高级配置。所谓高级配置其实就是进行 Webpack 优化,让我们代码在编译/运行时性能更好~
2025-04-20 20:06:36
2214
原创 webpack相关配置--初级
webpack 本身只能处理 js、json 等资源,其他资源需要借助 loader,Webpack 才能解析。原因是 Webpack 对 js 处理是有限的,只能编译 js 中 ES 模块化语法,不能编译其他语法。其次开发中,团队对代码格式是有严格要求的,我们不能由肉眼去检测代码格式,需要使用专业的工具来检测。有人可能会问,js 资源 Webpack 不能已经处理了吗,为什么我们还要处理呢?开发中一点点写 rules 规则太费劲了,所以有更好的办法,继承现有的规则。(3) extends 继承。
2025-04-19 21:02:57
1639
原创 axios 封装
但是Fetch的缺点也很明显,首先需要明确的是Fetch是一个 low-level(底层)的API,没有帮助你封装好各种各样的功能和实现;Fetch是AJAX的替换方案,基于Promise设计,很好的进行了关注分离,有很大一批人喜欢使用fetch进行项目开发;比如发送网络请求需要自己来配置Header的Content-Type,不会默认携带cookie等;axios是目前前端使用非常广泛的网络请求库,包括Vue作者也是推荐在vue中使用axios;比如不支持取消一个请求,不能查看一个请求的进度等等;
2025-04-17 21:44:05
369
原创 jwt问题
如果有人对头部以及负载内容解码后进行修改,再进行编码,最后加上之前的签名组合形成新的JWT的话,那么服务器端会判断出新的头部和负载形成的签名和JWT上附带的签名是不一样的。如果要对新的头部和负载进行签名,由于不知道服务器加密时使用的秘钥,得出来的结果也是不一样的。拿到编码后的 header 和 编码后的 payload 使用 密码进行签名。Signature需要使用编码后的header和payload以及我们提供的一个秘钥,然后使用header中指定的签名算法进行签名,签名的作用是保证JWT没有被篡改过。
2025-04-16 22:08:04
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅