SPA
SPA理解:
1. 单页Web应用(single page web application, SPA)
2. 是整个应用只有一个完整的页面,由组件构成的
3. 点击页面中的链接不会刷新页面,本身也不会向服务器发请求
4. 当点击链接时,只会做页面的局部更新
5. 数据都需要通过ajax请求获取,并在前端异步展现
优点:
1. 页面切换刘畅 组件之间的切换
2. 组件开发 组件复用可以提高效率
缺点:
1. 首屏加载过慢
2. seo优化不好
MPA 多页面应用
SPA单页面应用:指只有一个主页面的应用,一开始只需要加载一次js,css等相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅仅刷新局部资源
MPA多页面应用,指有多个独立页面的应用,每个页面必须重复加载js,css相关资源。多页应用跳转,需要整页资源刷新
区别
- 刷新方式(spa:相关组件切换,页面局部刷新或更改。mpa:整页刷新。)
- 路由模式(spa:可以使用hash,也可以使用history。mpa:普通链接跳转。)
- 用户体检(spa:页面片段间时间的切换快,用户体验良好,当初次加载文件过多时,需要做相关调忧。mpa:页面切换加载缓慢,流畅度不够,用户体验比较差,尤其网速慢的时候。)
- 转场动画(spa:容易实现转场动画。mpa:无法实现转场动画。)
- 数据传递(spa:容易实现数据传递,方法有很(通过路由带参数传值,vuex传值等)。mpa:依赖url传参,cookie,本地存储等。)
- 搜索引擎优化seo(spa:需要单独方案,实现较为困难,不得seo检索,可利用服务器端渲染ssr优化。mpa:实现方法容易。)
- 使用范围(spa:高要求的体验度,追求界面流畅的应用。mpa:适用于追求高度支持搜索引擎的应用。)
- 开发成本(spa:较高,长需要借助专业的框架。mpa:但也页面代码重复的多。)
- 维护成本(spa:相对容易。mpa:相对复杂。)
- 结构(spa:一个主页面+许多模块的组件。mpa:许多完整的页面。)
- 资源文件 (spa:组件公用的资源只需要加载一次。mpa:每个页面都需要自己加载公用的资源。)