【发布时间】:2016-11-20 16:05:08
【问题描述】:
鉴于我们可以在服务器上使用 Express 进行路由,为什么需要客户端路由器? 有什么好处,是否只对 SPA 有意义?
【问题讨论】:
标签: node.js express reactjs url-routing react-router
鉴于我们可以在服务器上使用 Express 进行路由,为什么需要客户端路由器? 有什么好处,是否只对 SPA 有意义?
【问题讨论】:
标签: node.js express reactjs url-routing react-router
需要客户端路由以使您的应用程序与浏览器 URL 保持同步。
它主要用于单页应用程序,其中后端将用于通过 XHR 或 AJAX 调用的 RESTful API 调用。
作为 SPA 用户可以为您的网址添加书签,当他们再次点击该网址时,您的应用程序应该加载该页面以及数据及其状态。
服务器端路由和客户端路由的主要区别:
1. 在服务器端路由中,您下载(提供)整个页面。
2. 在客户端路由以及整个页面中,您可以为页面的特定部分提供服务,重用 DOM,手动管理 URL 和历史状态。例如。
www.something.com/page1/tab1 将在 UI 中显示 tab1www.something.com/page1.tab2 将在 UI 中显示 tab2
通过这种方式,url 可以变得更加复杂,并且您可以拥有带有状态的子路由。
【讨论】:
那些需要客户端路由器的人,需要它来进行状态管理。假设您有服务器渲染的页面,但有一些客户端小部件 - 例如日历、一组过滤器或折叠或打开的侧边栏。路由器可帮助您将页面的这些组件初始化为您想要的确切状态。当然,您也可以完成大部分工作以及我在服务器上命名的所有用例。但是在客户端处理这些通常要容易得多。您可能会在服务器上更快地渲染它,但有时,尤其是在进行部分页面更新时,处理客户端会更便宜、更快。
【讨论】: