近日,redux
发布 4.2.0
版本,该版本将原始 createStore API
标记为 @deprecated
(废弃),并且添加了一个全新的 legacy_createStore API
,但是并没有添加弃用警告。此外该版本鼓励用户迁移到 Redux Toolkit
。
目标
Redux Toolkit
(@reduxjs/toolkit
包)是当今 Redux
用户编写 Redux
代码的正确方式:redux.js.org/introductio…
但不幸的是,许多教程仍然使用过时的 Redux
手写模式,这种模用户的开发体验非常差。鉴于此类问题,Redux
官方为常用的编辑器设计一个插件,当用户鼠标悬停在 createStore
函数上时,文档会提示建议使用 configureStore from RTK
进行代替,并将他们引导至文档页面。官方希望新学习者可以看到删除线、阅读工具提示、阅读文档页面,了解 RTK
并开始使用它。
为了兼容低版本代码,官方不会真正的删除createStore
API,只是将该 API 标记为已弃用(@deprecated)。
基本原理
RTK
极大改进了Redux
的使用体验,其 API 简化了标准的使用模式及消除了意外情况造成的突变错误等- 官方建议将 RTK 合并至 redux 核心包中,或者完全弃用整个 redux 包,将其重新命名为 @reduxjs/core,但不幸的是,这些改动都会带来太多的复杂性。
- 官方目前已经将包命名为 @reduxjs/toolkit,并且已经将文档和教程指向它。
- 合并或者重新排列包结构需要维护人员数百小时的工作
- 官方不想添加令人烦心的运行时警告
因此,官方采取最低限度的方法来接触使用过时模式的用户,同时避免破坏正在运行的代码。
结果
当用户在编辑器中导入 createStore
方法时,会看到一个删除线,同时文档工具将提示建议使用configureStore from RTK
进行代替。
如果用户不想看到删除线,他们有三个选择:
- 按照文档建议,使用
RTK
的configureStore
方法 - 什么都不做
- 切换
legacy_createStore
模式导出的API
,此种模式下没有@deprecation
标签
变化
标记 createStore
方法为已弃用,并添加 legacy_createStore
别名
如果你想了解更多讯息,请参考: github.com/reduxjs/red…