jhe*_*dus 15 url-routing react-router
Super newbee问题:我正在搜索互联网,因为我想了解网络应用中路由的概念.到目前为止互联网让我更加困惑.
到目前为止,我了解路由库有助于解析URL并将应用程序置于状态机的相应状态.
路由比这更多吗?
为什么首先需要路由?
为什么网址很重要?例如,在桌面应用程序中没有URL,那么在Web应用程序中它们的重要性是什么?
编辑:谢谢你的答案,当我的意思是网页应用程序时,我想要的是单页网页应用程序,当我的意思是路由时,我的意思就像路由为SPA,如https://github.com/ReactTraining/react-router.
Ric*_*nho 22
这是一个非常好的问题,但我并没有看到像我认为应该那样经常讨论的问题。简而言之,在单页 Web 应用程序中,您通常不需要路由。如果您正在构建一个不需要其页面被 Google 索引的应用程序,并且您不关心或不希望用户能够为页面添加书签,那么就没有理由实现路由。在 SPA 中,路由会增加额外的复杂性和工作量,因此如果可以避免这样做,就应该避免这样做。当然,Angular 和 React 等现代框架提供了使路由变得更加容易的工具,但即便如此,有些事情也可能很难通过路由来完成,例如页面之间的动画。路由冗余的 Web 应用程序的一个很好的例子是多页面表单,您希望控制用户的通过并可能阻止他们返回到已变得不适用的页面。使用路由实现这样的表单将是一场噩梦,因为您必须阻止用户访问其历史记录中的某些页面。
问问自己 SPA 中的路线实际上是什么是很有用的。人们很容易将其视为一个“网页”,但它实际上是一种状态,当您在路线之间导航时,您真正所做的是在应用程序的不同状态之间导航。应用程序的外观可能会在不同状态之间发生变化,这一事实与实际发生的情况是偶然的。因此,路线的作用是为用户提供返回应用程序特定状态的方法。仅当您希望用户能够返回应用程序的某个状态时,您才应该在 SPA 中实现路由。另一种可能更有用的方法是实现撤消和重做机制。
当然,即使您没有路线,您仍然需要关心用户单击“历史记录后退”按钮时会发生什么,但是您只需一个模式警报,警告他们如果继续,他们将离开应用程序与导航。
Anu*_*ena 12
我也有这个问题:"为什么我们需要路由?".你可以编写没有路由的应用程序.代码可能会变得混乱,但仍然不是不可能的.
我进行路由的最大原因是因为如果用户点击浏览器的后退按钮(也就是前进按钮),他将不会在应用程序中导航.用户可能希望使用之前加载的不同"页面"的历史记录在应用程序内导航.相反,他将被抛弃在网络应用程序之外.点击"刷新"按钮也会将他扔到应用程序的根目录.
从用户的角度来看,它是一个常规的Web应用程序(他不需要知道它是如何设计的:SPA或其他),它应该可以像任何Web应用程序/网站一样工作.路由确保了这一点,不是吗?
在桌面应用程序中,您可以使用按钮和其他控件来获取所需内容。因此,UI 应用程序中的路由将是所有 UI 控件的集合。另一方面,在网络应用程序中,所有功能都是通过一些文本访问的,这些文本是链接和参数。
URL 是访问功能的路径。路由就像是根据提供的 URL 和参数决定调用哪个功能的机制。
所以基本上路由是 URL 和 Web 服务器功能之间的映射。
SPA 中的路由用于加载 Web 应用程序的某些部分,例如,yourappurl.com/profile/userid/将使用与用户 ID 对应的正确用户配置文件加载 SPA 的配置文件部分。这可以在您提供的 GitHub 示例中看到:
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="about" component={About}/>
<Route path="users" component={Users}>
<Route path="/user/:userId" component={User}/>
</Route>
<Route path="*" component={NoMatch}/>
</Route>
Run Code Online (Sandbox Code Playgroud)
SPA 指的是这样一个事实:通常您有一个 index.html 作为您的“主视图”,然后根据路由,您使用 React 或 AngularJS 等框架从 index.html 添加/删除某些部分。
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |