客户端路由的缺点?

时间:2015-09-10 01:54:21

标签: javascript reactjs flux redux

我正在构建一个通用/同构的javascript应用程序(Express / Redux / React)。我正在考虑使用React Router在客户端上进行路由和/或使用Express在服务器上进行路由。

我知道客户端路由已经在单页应用中变得流行,因为它们使用户交互更加无缝。

但是,我试图更好地了解客户端与服务器端路由。构建任何应用程序(单页或不单页)时,有人可能遇到的客户端路由的潜在缺点是什么?什么时候最好考虑在服务器上路由?大规模应用程序是专门在一侧(客户端/服务器)路由还是经常混合两者?

谢谢!

2 个答案:

答案 0 :(得分:3)

我认为没有理由远离客户端路由。如果你正在使用像react-router这样的东西,那么这就是 客户端和服务器路由,并没有什么困难。有些人可能会告诉你的一些特定领域很难:

  • SEO。这是免费的,您点击的任何网址都会在服务器上正确呈现并发送到客户端,因此Googlebot会正确查看该页面。如果你是服务器端的路由,那么SEO对于客户端路由更难的建议绝对没有道理。
  • 分析。很容易,只需将ga('send', 'pageview', path)放在客户端处理导航的任何地方(在触发路由器更改路径之前)。
  • 资源,如果您的整个网站都很大,那么您不希望在首次加载页面时将整个内容发送到客户端。这将需要更多的复杂性(例如使用webpack定义多个入口点)。如果你的网站有数百个页面,那么客户端路由将会给你带来更少的好处。

This site(我自己的)使用客户端渲染。你会注意到,关闭JavaScript可以很好地工作(谷歌正确看待某些的最佳方式)。如果您想查看任何特定部分的完成情况,则来源为here

答案 1 :(得分:1)

客户端路由的一些缺点(可能):

  • 虽然服务器端路由是一种经过验证的技术,并且有许多可用的技术和库选项,但客户端可能不那么健壮且易于管理。

  • 监视。虽然服务器端路由页面可以通过任何基本的Web刮刀软件进行验证,但客户端路由页面需要通过更高级的工具进行监控,该工具实际呈现HTML并触发客户端脚本。

  • 服务SEO内容的困难。虽然这是可能的,但要困难得多。

  • 资源。根据您构建应用程序的方式,服务器端路由可能更具资源效率,因为每个页面加载客户端的开销更小。

  • 兼容性。根据您定位的浏览器,可能不支持您首选的客户端路由方法。

您仍然可以将路由页面不需要或不应被搜索引擎编入索引的应用程序使用客户端路由。

对于对SEO至关重要并且不需要成为SPA的页面(例如他们只是提供信息内容),没有什么理由不去服务器端。