在前端javascript应用程序中使用DI容器有意义吗
Does it make sense to use DI container in front end javascript app
我正在设计一个带有React及其支持库生态系统的应用程序。它将是一个大型应用程序,有很多服务和助手模块。为了处理它们之间的依赖关系,使用DI容器有意义吗。
[更新]
请添加我们可用的遗漏问题/解决方案,以准备一份包括/排除DI容器的良好指南
DI容器试图解决的几个问题是
它实现了模块的简单即插即用模块构造函数的更改仅限于服务注册
在不使用DI容器的情况下,我有以下选项
我们使用工厂模块(initaliser),它只是实例化,这将启用插件,具有相同接口的不同模块,并且不需要更改它的使用位置。
为了使它成为单例,服务模块将导出它的实例,以便在包含它的任何地方引用同一个实例。
不过,有一点是缺失的,那就是我们可以在单一位置(注册表)找到不同模块的所有依赖项。
取决于具体情况。如果应用程序很小,那么可能不会。如果应用程序需求经常变化,您使用SOLID方法和TS,那么它更有意义。
这就像在问"开车去上班好吗?"。但我们不知道你从家到工作有多远,你有停车的地方吗,你在汽油上要花多少钱,公共交通票价是多少等等…
一般来说,DI有助于使代码对扩展开放,但对修改关闭(打开/关闭原则)。创建高质量的代码总是个好主意。遗憾的是,从商业人士的角度来看,DI在简单的项目中会浪费时间,而且会使前端人员的学习曲线变得更陡峭。
相关文章:
- 在前端javascript应用程序中使用DI容器有意义吗
- Node.js时使用async是有意义的
- Angular $q.reject().success(),这有意义吗?
- 在JavaScript中使用===进行字符串比较有意义吗
- 传递给IIFE包装器有多少全局变量是有意义的
- 将Epoch日期转换为有意义的Javascript日期
- 在标准ES6类中添加getter方法有意义吗
- 为给定数量的空格查找可能数量的有意义的英语单词
- 使用 html 选择和日期的依赖日期选择器有意义
- 在这个jQuery插件中,哪种策略更有意义
- 拥有基本服务是否有意义,如果是这样,这是一种好方法
- JS:如何在保持n个有意义的数字的同时简化列表的过度精确数字
- 在Lua VM上运行JavaScript是否有意义
- 在Java 8 Nashorn JavaScript引擎中同时加载脚本是否有意义
- 新手:在MDN上有意义的Javascript闭包示例
- 只使用twitter引导程序中的插件有意义吗
- 将angular服务与es6模块一起使用有意义吗
- 这个JavaScript函数有什么作用?有意义吗
- 在这种情况下,New有意义吗
- 为什么“(state==1&&3)”有意义