首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中有指向依赖注入容器的指针吗?

在Javascript中有指向依赖注入容器的指针吗?
EN

Stack Overflow用户
提问于 2017-07-26 18:09:56
回答 1查看 243关注 0票数 2

我是一个长期的后端开发人员,但最近我设法开发了一些中等大小的单页web应用程序。

在服务器端,我使用过许多现代框架,如Spring、Grails、Symfony、Silex、Slim和其他,我真的很喜欢Silex或Slim的微框架概念(在所有情况下都是MVC框架)。

在客户端,由于应用程序的性质不同,我认为MVVM是最好的方法。

快速评估一些微JS框架(riotbackbone),并与我的服务器端背景进行比较,我注意到在JS框架中,依赖注入容器(DIC)并不被认为是框架(至少是微框架)的基本部分。

在每一个服务器端,现代的MVC (微)框架中,DIC是框架的基础,但我没有看到这在Javascript框架上发生(至少在微框架上,我知道它有它)。

根据我的搜索,JS唯一的独立DIC容器是在GitHub上只有672星的bottlejs。与PHP相比,PHP有许多独立的DIC项目,例如Pimple (1570星)或PHP-DI (1040星),您可以看到很大的差距

您是否认为许多js微框架所做的是一个严重的错误或低估?或者,DIC的模块化、可测试性和可管理性可以通过其他方式在JS中实现。

EN

回答 1

Stack Overflow用户

发布于 2017-07-26 20:48:44

单例可以自然地用JS模块生成,所以这不是DI的问题。并且可测试性也可以通过JS模块模拟来实现(proxyquire等)。这就是一些框架(Durandal,类似React)所依赖的。

在测试平台中,ES6模块通常以任何方式在幕后使用require,因此该方法仍然适用。proxyquire和其他缓存损坏库可能有其局限性(深度依赖),但在编写良好的测试中,您通常会模拟更高级别的单元,因此这通常是有效的。这就是在Jest内部实现这一点的方法,Jest通常用于测试React和类似React的代码。

因此,这取决于这些“微框架”到底是什么。对于当前生成的宏框架,React应该不需要DIC (而且,它也不是自以为是的,扩展它的功能是开发人员的责任)。而Angular、Aurelia、Ember、Polymer和Vue 2则采用DIC --因为它通常有利于应用程序设计。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45323864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档