js-implement js 常用方法实现 实现防抖(debounce)函数实现节流(throttle)函数实现深拷贝函数实现instanceof函数模拟实现new操作符实现call函数实现apply函数实现bind函数模拟实现Object.create函数实现JS的继承实现JSON.stringify实现JSON.parse实现简版的Promise实现解析URL的Params方法实现简版模板引擎实现千分位分割实现数组的 2024-09-02
build-utils-page 创建一个完整的工具页方案: webpack: 项目构建 react、antd、windtailcss: ui 界面 微前端架构: 部署多个应用 TypeScript: 编码 nest:后端 sqlLite: 数据库 nginx: 网关 docker: 运行环境 githubActions: 流水线 plans: 工具页: j 2024-08-08
ts-例子 1.利用具体参数的值决定展示额外的参数b或者c泛型: 1234567891011121314151617181920212223242526 // 利用泛型,推断type的值然后约束参数,注意T 要约束到具体的类型值,否则会为string// 定义可能的 type 值作为联合类型type Type = 'a' | 'b'// 使用联合类型优化 Func 接口 2024-07-23 ts
开发问题解决方法 1、docker拉取镜像超时打开 /etc/docker/daemon.json 配置文件,没有则创建, 添加tx镜像源 12345{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ]} 重启docker,配置文件错误可能导致do 2024-07-18
react-render react-reconciler 的部分在react中指的是render过程 协调的过程其实就是深度优先遍历当前需要渲染Fiber树的过程,通常当前需要构建的fiber树称为work in progress(wipRootFiber) hostRootFiberfiber其实就是当前dom根元素在内存中的一种结构hostRootFiber => domContainer begin 2024-04-12
cache-form 缓存组件缓存分为了普通数据缓存与特殊UI交互缓存,其中普通数据缓存使对象来维护注册时用type来区分不同的数据表单类型 1234567891011121314151617181920212223242526/** * 区分多个表单类型 * 定义格式为 合同类型_位置/业务模块名_表单类型(antd/meta)_form*/export enum SourceDataType { /** 2023-03-27
重构-手法 简化条件表达式将一个复杂的条件逻辑分解成若干块,分离分支逻辑和操作细节 分解条件表达式条件和逻辑都是使用一个新的函数拆分,清晰的表述意图 合并条件表达式多个分支条件判断却得到相同结果时,需要合并条件表达式(使用逻辑与、或,或者三元运算符),同时将条件抽取为一个函数,对厘清代码意图具有显著作用 合并重复的代码片段不随条件变化的代码,抽离到条件之外 移除控制标记使用break或者retu 2022-03-31
重构-坏代码的味道 重复代码 重复出现的代码片段,甚至是表达式都应该被抽离成公共函数 过长的函数 每当需要使用注释来说明的时候,都要考虑把需要说明的东西放进函数,以其用途命名(而不是实现手法命名) 过长参数 过长的参数会带来巨大的维护成本,使用对象替换过长的参数 2022-03-31
ts-高级类型 高级类型ReturnType 获取函数返回类型不使用 ReturnType 实现 TypeScript 的 ReturnType 范型。infer 推断返回类型 1234567891011type MyReturnType<T extends (...args: any)=>any > = T extends (...args: any)=> infer R ? R : n 2022-03-15