是否推荐客户端路由以及提供的服务器端路由 angular-universal

Is client side routing recommended along with the server side routing provided angular-universal

我刚开始使用 Angular 通用的 'isomorphic' javascript。

我对如何拥有一个逻辑路由系统有点困惑,你是想构建 angular 通用作为典型的节点休息 api 吗?或者它的字面意思是立即为客户端代码提供服务,并从外部检索数据 source/rest api?

以angular通用入门套件为例,它从这些路线开始;

app.get('/', ngApp);
app.get('/about', ngApp);
app.get('/about/*', ngApp);
app.get('/home', ngApp);
app.get('/home/*', ngApp);

然后将 node/express/mongo api 与 get/post 数据一起包含在内是否合乎逻辑?即;

const bearRoutes = require('./routes/bear')
app.use('/', bearRoutes)

如果是,您会使用散列策略来区分 URL 吗?

使用来自外部 api 的通用功能在 angular2 应用程序上提供数据与将所有内容托管在一起相比,在性能上会有明显差异吗?

感谢任何建议!

I'm a little confused as to how to have a logical routing system, are you meant to build out angular universal as a typical node rest api?

是的。 angular-universal 采用了这种理念。您在服务器端构建路由,因为一切都是在服务器端构建的。

is it then logical to include a node/express/mongo api along side this to get/post data?

是的,适用于您的数据服务。 例如Hello World example with github services makes API requests app.use 否,因为这实际上是您的 Node REST 服务器。

If it is, would you then use a hashing strategy in order to differentiate the URLS?

首先,URL 中 # 之后的任何内容都不会被服务器端看到。但是您描述的问题是关于命名 URLs 以及是否区分服务于 angular compiled/rendered HTML 内容的 URLs 与data/API 服务。

答案是肯定的。这是为了您自己管理服务器路由。例如,如果您的路线是

app.get('/', ngApp);
app.get('/about', ngApp);
app.get('/about/*', ngApp);
app.get('/home', ngApp);
app.get('/home/*', ngApp);

你可以添加

app.get('/api/profile', serverAPIAppOrprofileJSON); 

Would there be a noticeable performance difference between serving data on an angular2 app using universal from an external api compared to having everything hosted together?

考虑这样一种情况,您的页面的一小部分由于某些用户交互而发生变化,并且需要您带来一些数据。您可能只想更新此部分而不是呈现整个页面。所以在这种情况下性能会更好。