Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 微服务可以通过JS应用到前端吗?_Javascript_Angularjs_Reactjs_Frontend_Microservices - Fatal编程技术网

Javascript 微服务可以通过JS应用到前端吗?

Javascript 微服务可以通过JS应用到前端吗?,javascript,angularjs,reactjs,frontend,microservices,Javascript,Angularjs,Reactjs,Frontend,Microservices,我有一个项目,需要不同的开发人员在任何给定的时间为应用程序构建组件/模块 但是,每个组件都可以在不同的框架或库中编写,例如,URI/app1是用React编写的搜索组件,URI/app2是用AngularJS编写的结果组件 我正试图找到一种方法,以便在提供URI的情况下,如果提供URI/子域,我可以提供一个从其他子路径(URI)完全封装(技术方面)的模块 是否存在类似的情况?是否有一种方法或途径允许应用程序整体地服务于子模块(不是单个页面的片段,而是唯一路径下的完整页面),并与其他前端代码保持隔

我有一个项目,需要不同的开发人员在任何给定的时间为应用程序构建组件/模块

但是,每个组件都可以在不同的框架或库中编写,例如,
URI/app1
是用React编写的搜索组件,
URI/app2
是用AngularJS编写的结果组件

我正试图找到一种方法,以便在提供
URI
的情况下,如果提供
URI/子域
,我可以提供一个从其他子路径(URI)完全封装(技术方面)的模块


是否存在类似的情况?是否有一种方法或途径允许应用程序整体地服务于子模块(不是单个页面的片段,而是唯一路径下的完整页面),并与其他前端代码保持隔离,但仍然允许跨所用技术传递数据,因此,开发人员基本上可以使用他们选择的技术在子路径下创建组件/页面/模块,并在使用可能不同的技术编写的现有应用程序中一致接受它?

您的问题的答案是肯定的!微服务-复合用户界面在前端世界是非常新的。许多大公司正在放弃大型单片应用程序,并开始以微服务的方式进行开发——即收集复合用户界面

[定制马赛克]

每个应用程序都可以由不同的团队在不同的框架、角度、VUEJ中构建。您可以基于Zalando stack-Mosaic框架构建您的概念应用程序,或者只需获取一个部分,即具有MIT许可证的Tailor.js,并在此基础上构建您自己的一个。它肯定需要您提供其他部件,如反向代理和通信总线/管道

[聚合物]

这不是一个微服务项目,但一切都取决于项目的规模。有时web组件已经足够了。为了解决在不同技术中构建的可重用组件的问题,您可以使用-

[反应方式]

React是一个用于构建复杂用户界面的库。你几乎可以做任何事情——构建通用组件或整个应用程序,这些组件或应用程序将被注入到某种通用框架中。可以编写特殊机制,在运行时将来自不同来源的应用程序注入为应用程序包文件

[沟通与风格]

当然,您将面临应用程序/组件之间的通信问题。几乎没有可能确保您的组件/应用程序能够相互通信。基本的解决方案是使用某种API,比如用自定义函数构建自己的通信总线,或者只使用现有的一个PUB/子事件总线。如果你有不同的react应用程序和它们自己的存储(最好的解决方案是有一个存储,但没有什么能阻止你拥有多个存储),你可以考虑一些类似或的机制,并在不再需要时拔掉它们

构建复合ui也会在样式设计方面带来很多问题,因此考虑一些策略(如react或library-like-css模块)是一个好主意,以避免css冗余

有用的链接:

工作示例

示例通信总线


有一个叫做(我的一些同事构建的)的工具,它可能会工作。它允许混合使用不同类型的框架。我理解Spotify桌面应用程序就是这样工作的:每个UI小部件都是一个单独的Chromium“窗口”,因此每个小部件都可以有自己的依赖项—这意味着播放列表编辑器可以使用不同于帐户详细信息编辑器的jQuery版本—其缺点是内存使用和开销完全应受谴责。媒体播放器不需要300MB RAM就可以打开。Angular允许控制器之间的隔离。