您的位置:首页 > Web前端

关于前端路由和后端路由的一点思考

2016-10-23 16:50 295 查看
参考文章:
https://segmentfault.com/q/1010000005336260 http://www.zhihu.com/question/24321175/answer/27410834
前端路由:

1,什么是前端路由?

路由是根据不同的 url 地址展示不同的内容或页面

前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,之前是通过服务端根据 url 的不同返回不同的页面实现的。

2,什么时候使用前端路由?

在单页面应用,大部分页面结构不变,只改变部分内容的使用

3,前端路由有什么优点和缺点?

优点

用户体验好,不需要每次都从服务器全部获取,快速展现给用户

缺点

使用浏览器的前进,后退键的时候会重新发送请求,没有合理地利用缓存

单页面无法记住之前滚动的位置,无法在前进,后退的时候记住滚动的位置

简单的说,我们打开一个页面,这个页面是个单页应用:http://www.this-is-a-spa.com/

所以它仅仅只有一个页面,不过作者却做了好几个 URL:
http://www.this-is-a-spa.com/a http://www.this-is-a-spa.com/b http://www.this-is-a-spa.com/c
这些 URL 不会直接传给服务器,而是会被浏览器消化处理掉.
这样做,我们可以:

1、当浏览器读取到其中一个注册到前端路由中的 URL 请求时,比如 http://www.this-is-a-spa.com/a 时,可以触发预先写好的事件 A,所以当访问到这个 URL 后就可以直接触发到事件。在编写的时候可以用 <a href="/a">Event A</a> 来触发事件,而可以不用 addEventListener("click", ...) 这种写法,当项目逻辑比较复杂的时候,这种组织方式比写一大堆事件注册要好很多.(当然上 SPA 一般都用到了框架,这种方式只是一种选择)

2、用户可以收藏 http://www.this-is-a-spa.com/a 至收藏夹,打开后直接触发 /a 的事件(然后就自动加载数据或是什么别的事情),而没有做前端路由的 SPA 则达不到这样的效果,其 URL 从头到尾都是不变的.

所以~

什么是前端路由:路由交给浏览器处理就算是吧?有没有教科书式的标准定义?

什么时候适合用:SPA 就可以用,其实还是看产品需求.

优点:如上;

缺点:前端开发麻烦?还需要学习一个?如果也算缺点吧.

后端路由:

每跳转到不同的URL,都是重新访问服务端,然后服务端返回页面,页面也可以是服务端获取数据,然后和模板组合,返回HTML,也可以是直接返回模板HTML,然后由前端JS再去请求数据,使用前端模板和数据进行组合,生成想要的HTML。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: