路由时应该保留数据吗?
Should data be preserved while routing?
我有一些具有很多属性的对象。
我的 Angular2 应用程序的登录页面列出了每个对象的最小化版本。
当我点击其中一个列表项时,我将我的应用程序路由到 /object:id,id 是对象的 ID,并且将显示对象的 "full" 版本。
在最小化对象中使用的属性也将在完整对象中使用。在我当前的版本中,我只是首先请求最小化对象中使用的属性列表,然后在路由到完整对象时,我请求该对象的所有属性。
但是,我认为更好的做法可能是以某种方式存储最小化显示中使用的数据,然后只请求剩余的数据,从而共享最小化的数据,或者一次请求所有完整的数据,并且单击时只需将其传递给完整版。
因此我有几个与我的问题相关的问题。
如果我使用上面描述的两种方式之一,我应该如何将数据从一个页面转移到另一个页面?我应该创建一个服务,缓存数据,然后简单地从服务请求它吗?
我真正究竟应该做什么?有没有一种更有效的方法可以在不同页面上同时拥有同一个对象的最小化版本和完整版本,从而减少对服务器的请求?
附加信息:在我当前的数据库中,我有一个巨大的 table 包含对象的数据。所有的。 (不重要的细节:由于有多种对象类型,我为每种对象类型设置了一个 table,并将它们 "joining" 放入我 return 给客户端的巨大 table 中。 ) 有没有办法同时优化我的客户端和服务器基础架构?
谢谢!
共享服务通常是在远离组件路由时保持状态的方式。
您可以使用 中解释的方法之一来避免多个服务器请求相同的数据。
另一种方法是实施 RouteReuseStrategy https://angular.io/docs/ts/latest/api/router/index/RouteReuseStrategy-class.html
我有一些具有很多属性的对象。 我的 Angular2 应用程序的登录页面列出了每个对象的最小化版本。 当我点击其中一个列表项时,我将我的应用程序路由到 /object:id,id 是对象的 ID,并且将显示对象的 "full" 版本。
在最小化对象中使用的属性也将在完整对象中使用。在我当前的版本中,我只是首先请求最小化对象中使用的属性列表,然后在路由到完整对象时,我请求该对象的所有属性。
但是,我认为更好的做法可能是以某种方式存储最小化显示中使用的数据,然后只请求剩余的数据,从而共享最小化的数据,或者一次请求所有完整的数据,并且单击时只需将其传递给完整版。
因此我有几个与我的问题相关的问题。
如果我使用上面描述的两种方式之一,我应该如何将数据从一个页面转移到另一个页面?我应该创建一个服务,缓存数据,然后简单地从服务请求它吗?
我真正究竟应该做什么?有没有一种更有效的方法可以在不同页面上同时拥有同一个对象的最小化版本和完整版本,从而减少对服务器的请求?
附加信息:在我当前的数据库中,我有一个巨大的 table 包含对象的数据。所有的。 (不重要的细节:由于有多种对象类型,我为每种对象类型设置了一个 table,并将它们 "joining" 放入我 return 给客户端的巨大 table 中。 ) 有没有办法同时优化我的客户端和服务器基础架构?
谢谢!
共享服务通常是在远离组件路由时保持状态的方式。
您可以使用 中解释的方法之一来避免多个服务器请求相同的数据。
另一种方法是实施 RouteReuseStrategy https://angular.io/docs/ts/latest/api/router/index/RouteReuseStrategy-class.html