React
hooks
类组件缺陷:
- 代码笨重
- 组件难拆分,重构及测试
- 业务逻辑复用不便
- 类组件引入了复杂的编成方式, 高阶组件
函数组件没有状态和生命周期, 无法取代类组件
hooks 的设计是加强函数组件, 不使用类也可以写出一个全功能的组件
高阶组件
参数为组件, 返回值为新组件的函数
将可复用的逻辑与 UI 分离, 在不破坏原有组件功能的同时,增强原有组件
原理
React 是用于快速构建用户界面的 js 库
other
列表组件 key 的作用
setState
动态主题
懒加载
事件循环
其他
首屏时间优化
- http 缓存
- cdn
- 按需加载
- 资源压缩
- http 2.0
虚拟长列表
monorepo
概念
Monorepo 架构是指将所有项目代码存储在单个代码库中的架构,相对于多个代码库(多个仓库)的多仓库架构来说。 Monorepo 架构可以帮助开发人员更好地管理项目的依赖关系,更好地协作和共享代码,更好地维护和更新项目中的库和工具。
Monorepo 通常使用工具来管理项目之间的依赖关系,如 Lerna, Yarn workspace 等。使用这种架构,开发人员可以在不同的项目之间共享代码,并可以在一个地方管理和维护所有项目的库和工具。
优势
- 代码共享和复用:在单个仓库中维护所有项目代码,可以方便地在项目之间共享和复用代码
- 依赖管理:将所有项目的依赖关系统一管理,可以避免版本冲突和不兼容性问题
- 协作和团队协作:在单个仓库中维护所有项目,可以更好地协调团队成员之间的工作,并且更容易管理代码审核和合并
- 统一的工具和流程:在单个仓库中维护所有项目,可以使用相同的工具和流程来管理所有项目,减少开发人员的学习成本
- 更好的可维护性:在单个仓库中维护所有项目,可以更好地维护项目的整体结构和组件之间的关系,减少项目的维护成本
劣势
- 大型项目管理难度:对于大型项目,单个仓库中存储所有代码可能会导致管理和维护难度增加。
- 长时间的构建和部署时间:由于所有项目都存储在单个仓库中,因此构建和部署所有项目可能需要较长时间。
- 难以隔离问题:如果单个项目出现问题,可能会影响整个仓库中的其他项目。
- 更高的学习成本:使用 Monorepo 架构可能需要学习新的工具和流程,这可能会增加开发人员的学习成本。
解决了什么问题
Monorepo 架构可以解决多个项目之间的依赖关系管理问题。在传统的多仓库架构中,每个项目都是一个单独的仓库,这意味着在不同项目之间进行依赖关系管理非常困难。而在 Monorepo 架构中,所有项目都在一个仓库中管理,这使得依赖关系管理变得简单明了。此外,Monorepo 架构还可以帮助提高团队协作效率和代码的可维护性。
interview
芒果
join, left join 区别 group by 根据 in 排序 left join 时, 右表 b 数据查到为空, 则 b.a 结果是什么 盒子模型 js 变量提升问题 css 元素隐藏 Koa 的设计
金蝶
高阶组件 koa 中间件 diff 算法
白屏优化
https
交互过程
证书验证阶段
- 浏览器发起 https 请求
- 服务端返回 https 证书
- 客户端校验证书合法性
数据传输阶段
- 客户端本地生成随机数
- 通过公钥加密随机数, 传输到服务端
- 服务端通过私钥解密随机数
- 服务端对随机数构造对称加密算法, 对响应内容进行加密
证书
- 颁发机构信息
- 公钥
- 公司信息
- 域名
- 有效期
- 指纹
非对称加密
按需加载原理
typescript 理论
webpack 插件