JavaScript 进阶实战课
石川
JavaScript Patterns and Anti-Patterns 等开源项目创建者,O'Reilly 技术评审
15066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
JavaScript 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

21 | 创建型:为什么说Redux可以替代单例状态管理

你好,我是石川。
时间过得真快,今天要开始专栏的第三个模块“JavaScript 之术”了,前面我们已经了解了函数式和面向对象的编程模式、JavaScript 的数据结构与算法,从这节课开始,我们会展开讲解 JavaScript 用到的设计模式,结合一些三方的库,来帮助你理解和掌握如何通过设计模式进一步提高“生产力”,优化“生产关系”。
一般在介绍设计模式的时候,都会先说到创建型模式。创建型模式里又包含几种设计模式,最为大家熟知的,可能要数单例模式了,在很多语言中它经常被用来做状态管理。这节课,我们就来看看这种模式的优劣势,以及 Javascript 的 Redux 是怎么解决单例在状态管理中所面临的一些问题的。除了单例模式,我也会延伸讲解几个其他的创建型模式。下面我们还是先从单例模式本身说起吧。

单例模式

在 ES6 之前,单例模式在 JavaScript 中除了状态管理,其实更经常被用来做封装和命令空间。而在 ES6 以后,JS 中已经加入了很多防止全局污染的手段。比如通过新增加的 let 和 const 两个关键字,将使用这两个关键字声明的变量保持在块范围内,创建全局变量已经很少见了。同时,JavaScript 中的新加入的模块系统(modular system)使创建全局可访问的值更容易,而不会污染全局范围,这是因为它是从模块中导出值,并将这些值再导入其他文件中的。所以对于开发者来说,单例剩下的一个场景,就是状态管理了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了JavaScript中的状态管理模式以及创建型模式中的工厂模式和原型模式。文章指出了单例模式在面对副作用时存在的问题,并介绍了Redux和React Context等状态管理工具在React中的应用。工厂模式通过工厂函数创建对象,提供了灵活性和控制权,适用于创建相对复杂和可配置的对象。原型模式在JavaScript中实现继承更简单,并且可以提高性能。总结指出,JavaScript对状态管理并不仅限于传统的单例模式,而是通过函数式编程的思想和创建型模式的灵活结合,巧妙地解决了相关问题。文章最后留下思考题,鼓励读者分享在Node等后端应用中使用创建型模式的应用场景、遇到的问题和解决方案。整体而言,本文深入浅出地介绍了JavaScript中的状态管理和创建型模式,为读者提供了全面的技术视角和思考空间。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《JavaScript 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 度衡
    之前还总感觉, redux非要走一套流程好麻烦,原来是为了减少副作用,稍微领会了这样做的意义
    2023-01-03归属地:北京
    2
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部