我正在构建一个通用/同构的javascript应用程序(Express / Redux / React)。我正在考虑使用React Router在客户端上进行路由和/或使用Express在服务器上进行路由。
我知道客户端路由已经在单页应用中变得流行,因为它们使用户交互更加无缝。
但是,我试图更好地了解客户端与服务器端路由。构建任何应用程序(单页或不单页)时,有人可能遇到的客户端路由的潜在缺点是什么?什么时候最好考虑在服务器上路由?大规模应用程序是专门在一侧(客户端/服务器)路由还是经常混合两者?
谢谢!
答案 0 :(得分:3)
我认为没有理由远离客户端路由。如果你正在使用像react-router这样的东西,那么这就是 客户端和服务器路由,并没有什么困难。有些人可能会告诉你的一些特定领域很难:
ga('send', 'pageview', path)
放在客户端处理导航的任何地方(在触发路由器更改路径之前)。This site(我自己的)使用客户端渲染。你会注意到,关闭JavaScript可以很好地工作(谷歌正确看待某些的最佳方式)。如果您想查看任何特定部分的完成情况,则来源为here。
答案 1 :(得分:1)
客户端路由的一些缺点(可能):
虽然服务器端路由是一种经过验证的技术,并且有许多可用的技术和库选项,但客户端可能不那么健壮且易于管理。
监视。虽然服务器端路由页面可以通过任何基本的Web刮刀软件进行验证,但客户端路由页面需要通过更高级的工具进行监控,该工具实际呈现HTML并触发客户端脚本。
服务SEO内容的困难。虽然这是可能的,但要困难得多。
资源。根据您构建应用程序的方式,服务器端路由可能更具资源效率,因为每个页面加载客户端的开销更小。
兼容性。根据您定位的浏览器,可能不支持您首选的客户端路由方法。
您仍然可以将路由页面不需要或不应被搜索引擎编入索引的应用程序使用客户端路由。
对于对SEO至关重要并且不需要成为SPA的页面(例如他们只是提供信息内容),没有什么理由不去服务器端。