写在前面:
这些年前端发展非常快,新的理念和框架不断产出和发展,如当今火爆的Vue和React这样的单页面应用框架。
那么大家对於单页面应用和多页面应用是否有系统的认知呢?如果你对二者的概念还很模糊,那么本文将带着大家从区别和对比的角度彻底搞定它们。
什么是单页面应用?
英文是SinglePage Web Application
,简称SPA
。 只有一个Web页面的应用,单页面跳转就是切换相关组件,仅刷新局部资源,公共资源(js、html、css等)仅需加载一次。
什么是多页面应用?
英文名是MultiPage Application
,简称MPA
。顾名思义就是有多个独立页面的应用,每个页面都会重复加载js、css等资源,多页面跳转需要刷新整页的资源。
对比
单页面应用(SPA) | 多页面应用(MPA) | |
---|---|---|
结构 | 一个主页面+多个模块的组件 | 多个完整的页面 |
体验 | 首屏时间较慢,SEO差,页面切换快 | 首屏加载快,SEO效果好,页面切换慢 |
URL模式 | 如 xxx.com/#/index | 如 xxx.com/index.html |
适用场景 | 对体验度和流畅度有较高要求,弱化SEO优化 | 对SEO要求较高,弱化页面流畅度 |
转场动画 | 很多框架封装好了动画组件,容易实现 | 很难实现 |
路由模式 | 使用 hash 或者 history | 普通链接跳转 |
数据传递 | 单页面直接使用全局变量即可 | 使用cookie、localStorage等花缓存方案,URL参数,调用接口保存等 |
说明:
搜索引擎在记录网站
和自然排名
有一套规则,对这套规则作出相应的优化便称为SEO
英文全称Search Engine Optimization
,中文叫搜索引擎优化
。
由于搜索引擎蜘蛛
或网络爬虫
程序更擅长对静态资源的抓取和更新,难以识别JS渲染生成的内容。对于多页面应用来讲,每个页面内容都放静态html中,更易被抓取识别到,这样SEO效果就好。反观单页面应用,很多内容都是根据匹配到的路由动态获取的,网络抓取工具程序爬取困难,SEO效果自然就差。