单页面(SPA):就是只有一个主页面,所有的内容都包含在这个主页面中,初始化时要加载所有必须的html, js, css文件,加载完成后,页面的交互是由路由程序动态载入,也就是不会因为用户的操作而进行页面的重新加载,而是仅刷新局部资源
优点:
- 良好的用户体验
- 良好的前后端工作分离模式
- 减轻服务器压力(内容改变不需要重新加载整个页面)
- 页面效果会比较炫酷(专场动画)
缺点:
- 不利于SEO
SEO是一个服务器向另一个服务器发起请求并解析请求内容,一般来说搜索引擎不会去执行请求到的js,搜索引擎的基础原理就是抓取url,然后获取html源代码并解析,SPA数据渲染在前端进行,数据动态生成,seo主要是让网站对搜索引擎的爬虫更加友好,spa爬虫识别不了
解决方法:
①页面与渲染
②路由采用history模式
③服务端渲染
2. 初次加载耗时过多
解决方法可参考 vue首屏优化方案
3. 不能使用浏览器的前进后退
解决方法:页面切换要自己建立堆栈管理(可以利用url的散列和iframe实现)