路由

Web的一个基石是URL(Uniform Resource Locator),通过一个URL对应一个资源(包括文本、图片、视频等)的方式,将整个网上世界链接起来,用户可以在浏览器里顺着页面里面的URL一路点下去,找到一个新的世界!

随着Ajax以及SPA的兴起,现在很多网站已经不是简单的静态页面了,很多内容都是通过JS在前端动态地构造生成的。理论上而言,当用户进入一个网站的官网首页(比如电商网站http://xxx.com ),用户浏览点击各个商品以及根据搜索条件查询等等,都可以在同一个页面里完成,即看上去没有刷新整个页面。按理说页面的URL可以是一直保持不变的http://xxx.com 。但是这样问题来了,如果你浏览或者搜索了很久,找到一个很不错商品,想要分享给朋友,结果URL是官网的首页地址http://xxx.com , 你把这个复制下来分享出去, 你觉得你朋友打开这个页面会看到什么? 当然,看到的是官网首页而不是你选中的商品页面! 当然你可以再告诉朋友,要怎么从官网一步一步操作进入到你发现的商品页面去,如果朋友有耐心的话, 也能真的找到,就是太麻烦了!

所以URL的作用就体现出来了,应该给每个商品页面分配一个对应的独一无二的URL。然后你找到商品后,只需要复制这个URL分享出去,朋友拿到之后只需要在浏览器里打开此URL,立刻马上就能看到对应的商品。

在以前服务端渲染页面的时候,都是后端实现了此功能。现在在前端采用SPA架构,基本不刷新页面的时候就需要前端在用JS动态改变了页面内容的时候,动态的改变URL,保持URL跟页面内容的一致性。 这就是路由的功能了。

总结一下,路由的功能就是为了保持URL跟页面内容的一一对应,如果你觉得这个页面是有单独存在必要,应该能被收藏或者分享出去的话,那就需要给它分配一个URL。如果不需要的话(比如填写了一半的form表单页面,或者JS抛错页面),可以不用分配URL。

results matching ""

    No results matching ""