vue 单页应用和多页应用的优劣


Posted in Javascript onOctober 22, 2020

多页应用

每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用。

vue 单页应用和多页应用的优劣

为什么多页应用的首屏时间快?

首屏时间叫做页面首个屏幕的内容展现的时间,当我们访问页面的时候,服务器返回一个html,页面就会展示出来,这个过程只经历了一个HTTP请求,所以页面展示的速度非常快。

为什么搜索引擎优化效果好(SEO)?

搜索引擎在做网页排名的时候,要根据网页内容才能给网页权重,来进行网页的排名。搜索引擎是可以识别html内容的,而我们每个页面所有的内容都放在Html中,所以这种多页应用,seo排名效果好。

但是它也有缺点,就是切换慢

因为每次跳转都需要发出一个http请求,如果网络比较慢,在页面之间来回跳转时,就会发现明显的卡顿。

单页应用

第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容也变化了。
原理是:JS会感知到url的变化,通过这一点,可以用js动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前页面上,这个时候的路由不是后端来做了,而是前端来做,判断页面到底是显示哪个组件,清除不需要的,显示需要的组件。这种过程就是单页应用,每次跳转的时候不需要再请求html文件了。

vue 单页应用和多页应用的优劣

为什么页面切换快?

页面每次切换跳转时,并不需要做html文件的请求,这样就节约了很多http发送时延,我们在切换页面的时候速度很快。

缺点:首屏时间慢,SEO差

单页应用的首屏时间慢,首屏时需要请求一次html,同时还要发送一次js请求,两次请求回来了,首屏才会展示出来。相对于多页应用,首屏时间慢。
SEO效果差,因为搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容,也就不会给一个好的排名,会导致单页应用做出来的网页在百度和谷歌上的排名差。

有这些缺点,为什么还要使用Vue呢?

Vue还提供了一些其它的技术来解决这些缺点,比如说服务器端渲染技术(我是SSR),通过这些技术可以完美解决这些缺点,解决完这些问题,实际上单页面应用对于前端来说是非常完美的页面开发解决方案。

新的更新

最近在改造公司的项目,公司的项目是单页应用,可能会改成多页应用,所以对这块又重新看了一下。在网上看到一个表格觉得总结的很到位,贴过来。我是表格出处

mm 多页应用模式MPA 单页应用模式SPA
应用构成 由多个完整页面构成 一个外壳页面和多个页面片段构成
跳转方式 页面之间的跳转是从一个页面跳转到另一个页面 页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开壳页面
跳转后公共资源是否重新加载
URL模式 http://xxx/page1.html  http://xxx/page1.html http://xxx/shell.html#page1  http://xxx/shell.html#page2
用户体验 页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上 页面片段间的切换快,用户体验好,包括在移动设备上
能否实现转场动画 无法实现 容易实现(手机app动效)
页面间传递数据 依赖URL、cookie或者localstorage,实现麻烦 因为在一个页面内,页面间传递数据很容易实现
搜索引擎优化(SEO) 可以直接做 需要单独方案做,有点麻烦
特别适用的范围 需要对搜索引擎友好的网站 对体验要求高的应用,特别是移动应用
搜索引擎优化(SEO) 可以直接做 需要单独方案做,有点麻烦
开发难度 低一些,框架选择容易 高一些,需要专门的框架来降低这种模式的开发难度

以上就是vue 单页应用和多页应用的优劣的详细内容,更多关于vue 单页应用和多页应用的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JavaScript DOM 学习第七章 表单的扩展
Feb 19 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
jQuery中toggleClass()方法用法实例
Jan 05 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
Jun 24 Javascript
JQuery.validationEngine表单验证插件(推荐)
Dec 10 Javascript
BootStrap selectpicker后台动态绑定数据
Jun 01 Javascript
微信小程序 开发MAP(地图)实例详解
Jun 27 Javascript
Angular简单验证功能示例
Dec 22 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
VUE 动态组件的应用案例分析
Dec 02 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 Javascript
Javascript Symbol原理及使用方法解析
Oct 22 #Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 #Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 #Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 #Javascript
ES11屡试不爽的新特性,你用上了几个
Oct 21 #Javascript
记一次vue跨域的解决
Oct 21 #Javascript
解决Vue项目中tff报错的问题
Oct 21 #Javascript
You might like
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php析构函数的简单使用说明
2015/08/24 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
班级安全教育实施方案
2014/02/23 职场文书
可口可乐广告词
2014/03/20 职场文书
毕业寄语大全
2014/04/09 职场文书
阳光体育活动总结
2014/04/30 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
python 字典和列表嵌套用法详解
2021/06/29 Python
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers