前端中的设计模式 | 青训营笔记

74 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第1天 潦草记录, 仅作参考

设计模式

单例模式

单例模式请求缓存

image.png

单例模式 创建实例的时候 只调用一次 new Reauest()

用单例模式请求缓存

image.png

image.png

定义一个全局缓存 const cache:Record <string, string> ={}

发布订阅模式

定义

一种订阅机制,可在被订阅对象发生变化时通知订阅者

应用场景:

从系统架构之间的解耦等

示例:

image.png

发布订阅模式实现用户上线订阅

  • 创建 image.png

  • 使用:

image.png

Javascript 中的设计模式

原型模式

定义

复制已有对象创建新的对象

应用场景

JS对象创建的基本模式

原型模式创建上线订阅中的用户

  • 创建: image.png
  • 使用:

image.png

代理模式:

定义

自定义控制对象的访问方式,允许在更新前后做一些额外处理

应用场景:

监控 代理工具 前端框架实现等;

代理模式实现用户状态订阅

image.png

使用new Proxy()代理原始对象

迭代器模式

定义

在不暴露数据类型情况下访问集合的数据

image.png

应用场景

数据结构的数等

for of 迭代所有组件

image.png

image.png

迭代器Symbol.interator, 返回 next(), 该函数返回两个值: donevalue

模拟dom:

image.png

前端框架中的设计模式

代理模式

Vue组件实现计数器

image.png

ref是什么?

image.png

对代理过后的dom的更新, 通过diff算法对比前后的差异

组合模式

image.png

React的组件结构

image.png