1.什么是路由
简单的说,路由是根据不同的 url 地址展示不同的内容或页面;
2、什么是前端路由?
前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,之前是通过服务端根据 url 的不同返回不同的页面实现的;
3、什么是后端路由?
(参考链接http://www.cnblogs.com/yuqing6/p/6731980.html)
通过用户请求的url导航到具体的html页面;每跳转到不同的URL,都是重新访问服务端,然后服务端返回页面,页面也可以是服务端获取数据,然后和模板组合,返回HTML,也可以是直接返回模板HTML,然后由前端js再去请求数据,使用前端模板和数据进行组合,生成想要的HTML。
4、前端路由的两种实现原理
(参考链接https://segmentfault.com/a/1190000007238999)
①、History API
重点说其中的两个新增的API history.pushState 和 history.replaceState;
②、hash
根据监听哈希变化触发的事件 —— hashchange 事件;
5、前端路由优缺点
优点:
1.从性能和用户体验的层面来比较的话,后端路由每次访问一个新页面的时候都要向服务器发送请求,然后服务器再响应请求,这个过程肯定会有延迟。而前端路由在访问一个新页面的时候仅仅是变换了一下路径而已,没有了网络延迟,对于用户体验来说会有相当大的提升。
2.在某些场合中,用ajax请求,可以让页面无刷新,页面变了但Url没有变化,用户就不能复制到想要的地址,用前端路由做单页面网页就很好的解决了这个问题。
缺点:
使用浏览器的前进,后退键的时候会重新发送请求,没有合理地利用缓存。
6、前端路由在很多开源的js类库框架中都得到支持,如angularJS,Backbone,Reactjs等等。
(参考链接http://web.jobbole.com/84644/)
①、AngularJS
Angular 是流行的企业级框架,许多开发人员都在使用它来构建和维护复杂的 web 应用程序。Angular 的人气非常高,包括 Domino’s Pizza, Ryanair, iTunes Connect, PayPal Checkout, 谷歌等企业都在使用它。Angular 是一个由谷歌支持的开源框架。Angular 自称是 HTML 的一个扩展,用来构建复杂的 web 应用程序。
Angular 是一个 MVC 类型的框架。它提供了模型和视图之间的双向数据绑定。该数据绑定允许每当数据改变时,两边自动更新。 它使你能够构建可复用的视图组件。它提供了一个服务框架,使得后端-前端服务通信更容易。最后,它只是普通的 JavaScript。
②、React
React 自称是一个用于构建用户界面的 JavaScript 库。React 主要是 MVC 中的 V。它的重点完全在 MVC 的 V 部分,忽视应用程序架构的其余部分。它提供了一个组件层,使得创建 UI 元素,组合元素变得更容易。它使用虚拟 DOM,因此优化了渲染,且允许从 node.js 渲染 React。此外,它实现了单向响应的数据流,因此比其他框架更容易理解和使用。
③、Backbone
Backbone 提供一个完整的 MVC 框架以及路由。模型允许键-值绑定和数据变化的事件处理,Backbone 是我创建简单 web 应用程序的首选框架。
.....(参考链接http://web.jobbole.com/84644/)