这是我参与「第四届青训营 」笔记创作活动的第1天 潦草记录, 仅作参考
设计模式
单例模式
单例模式请求缓存
单例模式 创建实例的时候 只调用一次
new Reauest()
用单例模式请求缓存
定义一个全局缓存
const cache:Record <string, string> ={}
发布订阅模式
定义
一种订阅机制,可在被订阅对象发生变化时通知订阅者
应用场景:
从系统架构之间的解耦等
示例:
发布订阅模式实现用户上线订阅
-
创建
-
使用:
Javascript 中的设计模式
原型模式
定义
复制已有对象创建新的对象
应用场景
JS对象创建的基本模式
原型模式创建上线订阅中的用户
- 创建:
- 使用:
代理模式:
定义
自定义控制对象的访问方式,允许在更新前后做一些额外处理
应用场景:
监控 代理工具 前端框架实现等;
代理模式实现用户状态订阅
使用
new Proxy()代理原始对象
迭代器模式
定义
在不暴露数据类型情况下访问集合的数据
应用场景
数据结构的数等
for of 迭代所有组件
迭代器
Symbol.interator, 返回next(), 该函数返回两个值:done和value
模拟dom:
前端框架中的设计模式
代理模式
Vue组件实现计数器
ref是什么?
对代理过后的dom的更新, 通过diff算法对比前后的差异