这个问题一直困扰着我。
如果您正在使用Angular构建具有多种功能的网站,那么建立一个巨大的SPA或将网站分解为功能性的应用程序"会更好吗?并为每个应用程序构建SPA?
例如,我们有一个社交媒体网站,其中包含通知Feed,用户个人资料,报告和群组。您是将所有这些功能构建到单个SPA中,还是构建4个不同的SPA并让后端框架路由到正确的SPA?
e.g。
www.mywebsite.foo#/曲线/ 12345 /教育
VS
www.mywebsite.foo/profile/12345#/education
我个人更赞成后一种方法,因为它减少了应用的大小,但它确实需要在应用之间导航时重新加载页面。
答案 0 :(得分:1)
Mark Collings在你的文章中谈到了一件事:
https://markwillcollins.silvrback.com/7-things-i-wish-i-knew-about-angularjs
" 3。结构至关重要......"
他建议在开始工作之前计划每一页。
然后,我相信,您将发现满足您特定需求的最佳方法。
我更喜欢孤立于小型服务,因为我没有看到使用require.js或类似方法在复杂的加载层次中共享小部分javascript的优势。
答案 1 :(得分:1)
所以,这是我所学到的以及我所做的:
我的服务器有默认路由:
var express = require('express');
var router = express.Router();
...
router.get('*', function(req, res) {
res.sendfile(path.resolve(__dirname + '/../../../build/index.html')); // Send index.html for HTML5Mode
});
return router;
所以,我的网站上可以有多个SPA,因为我只是为它们发送了不同的html模板。 HTML5风格的应用程序需要选择上面的默认应用程序。
什么属于单一SPA?
用户体验中相互关联的所有状态。在应用程序之间共享状态(例如,身份验证)将是复杂的。当然,他们都可以访问服务器的完整状态。
什么时候有用?
如果您有明确显示不同用例的模型,例如两种不同登录用户。或两个不同的地方'他们登录。
要获得什么?
在尝试之前,您可能不知道自己真正需要什么。所以我建议收集依赖于登录到同一个应用程序的所有内容。默认应用应包含“匿名访问者”#39;经验。