vue,react,angular 都是构建 spa 单页应用的框架,spa单页面应用就是只有一个页面的应用:
- 优点是切换快,用户体验好
- 缺点是首屏加载慢,不利于seo搜索引擎优化
概念
SPA 应用默认只返回一个空的 html 页面,整个应用程序的内容是通过 js 动态加载的。页面初始化时加载相应的 HTML,JavaScript、CSS (不做特殊处理一般都是 js 文件)等,一旦页面加载完成,就不会因为用户的操作而进行页面的重新加载或跳转,简单说就是spa只有一个web页面。
它是路由机制通过监听路由的变化实现 html 内容的变换,从而动态实现 UI 与用户的交互;就像我们在vue项目中从一个菜单项切换到另一个菜单项,页面内容虽然变了但是并没有做请求。一个新的html的动作而是通过变化的路由,去找到当前路由对应的页面。
优点
① 由于页面初始化的时候项目依赖资源统一加载了,所以后面切换页面就不用向服务器请求,因此流畅,切换速度快,用户体验好。一定程度上也会减小服务器的压力。
②前后端职责更加清晰,前端就负责页面相关以及调后端接口拿数据的工作,后端则负责数据相关的处理。
缺点
① 首屏加载慢,因为这是单页面应用,初次加载的时候资源会统一全部加载。
② 由于所有的内容都在一个页面中动态替换显示,所以在 SEO 上其有着天然的弱势,也就是说另一个缺点就是不利于搜索引擎优化。