前端路由和后端路由,前端渲染和后端渲染

1.vue-router和koa-router的区别

vue-router是前端路由,koa-router是后端路由。

前端路由

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

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

缺点
使用浏览器的前进,后退键的时候会重新发送请求,没有合理地利用缓存
单页面无法记住之前滚动的位置,无法在前进,后退的时候记住滚动的位置


后端路由

定义:通过用户请求的url导航到具体的html页面;每跳转到不同的URL,都是重新访问服务端,然后服务端返回页面,页面也可以是服务端获取数据,然后和模板组合,返回HTML,也可以是直接返回模板HTML,然后由前端js再去请求数据,使用前端模板和数据进行组合,生成想要的HTML


对比

1.从性能和用户体验的层面来比较的话,后端路由每次访问一个新页面的时候都要向服务器发送请求,然后服务器再响应请求,这个过程肯定会有延迟。而前端路由在访问一个新页面的时候仅仅是变换了一下路径而已,没有了网络延迟,对于用户体验来说会有相当大的提升。     
2.在某些场合中,用ajax请求,可以让页面无刷新,页面变了但Url没有变化,用户就不能复制到想要的地址,用前端路由做单页面网页就很好的解决了这个问题。但是前端路由使用浏览器的前进,后退键的时候会重新发送请求,没有合理地利用缓存。


vue-router前端路由原理

前端路由主要模式:hash模式和history模式

而在vue-router中,它提供mode参数来决定采用哪一种方式,选择流程如下:
默认Hash-->如果浏览器支持History新特性改用History-->如果不在浏览器环境则使用abstract

选好mode后创建history对象(HashHistory或HTML5History或AbstractHistory)

可见最被青睐的是History模式,理由是: "#"太丑了。。


前端渲染:

定义:指的是后端返回JSON数据,前端利用预先写的html模板,循环读取JSON数据,拼接字符串(es6的模板字符串特性大大减少了拼接字符串的的成本),并插入页面。

好处:网络传输数据量小。不占用服务端运算资源(解析模板),模板在前端(很有可能仅部分在前端),改结构变交互都前端自己来了,改完自己调就行。

坏处:前端耗时较多,对前端工作人员水平要求相对较高。前端代码较多,因为部分以前在后台处理的交互逻辑交给了前端处理。占用少部分客户端运算资源用于解析模板。


后端渲染:

定义:前端请求,后端用后台模板引擎直接生成html,前端接受到数据之后,直接插入页面。

好处:前端耗时少,即减少了首屏时间,模板统一在后端。前端(相对)省事,不占用客户端运算资源(解析模板)

坏处:占用服务器资源。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 周末去了一次漫展,为了熬一个志愿者实践证明。 拥有近二十年的生活体验的我却鲜少有机会感受二次元的世界,我记得上一次...
    黯淡是梦里的光辉阅读 244评论 0 0
  • 如果,要为团结和谐的乡干班 找一个关键词 我有千万个理由选择,温暖 是的。温暖。 2018这个春天,我们从油菜花的...
    刘德权阅读 878评论 0 0
  • 【靠山吃山,靠水吃水】 湖州有山但没有矿产资源,湖州没有石油,虽然湖州没有最好的水资源,但我们湖州不缺水,做好水...
    竹童阅读 366评论 0 0
  • 很多时候,我们几乎都以为对别人产生影响需要很多条件:比如你要有地位、有钱或有权等等,甚至我们从来都不认为普通人能对...
    壹青春心理同行阅读 912评论 1 3