一、什么是SPA
单页应用SPA是一种网络应用程序或网站的模型,它通过动态重写当前页面来与用户交互。
这种方法避免了页面之间切换打断用户体验在单页面应用中,所有必要的代码(HTML、JavaScript和css)都通过单个页面的加载而检索,或者根据需要(通常是为响应用户操作)动态装载适当的资源并添加到页面,页面在任何时间点都不会重新加载,也不会将控制转移到其它页面。
熟知的JS框架,例如 react,vue,angular,ember 都属于SPA---单页面应用
优点:
具有桌面应用的即时性、网站的可移植性和可访问性
用户体验好、快,内容的改变不需要重新加载整个页面
良好的前后端分离,分工更明确
缺点:
不利于搜索引擎的抓取 首次渲染速度相对较慢
三、实现一个SPA
hash 模式
核心通过监听url中的hash来进行路由跳转
- onhashchange
history模式
history 模式借用 HTML5 history api,api提供了丰富的 router 相关属性相关的 api
history.pushState 浏览器历史纪录添加记录
history.replaceState修改浏览器历史纪录中当前纪录
history.popState 当 history 发生变化时触发
ssr
-
客户端渲染 服务端渲染
-
页面上看到的东西本质是由数据和模板拼在一起 我们把这个称为渲染
-
vue项目默认是spa,是单页面应用程序,缺点是不利于SEO,如果想做SEO,可以考虑用ssr,也就是服务端渲染 ,项目中我们一般会用nuxt.js这个框架来做ssr
vue是spa -> spa是有缺点 不利于seo -> ssr的方式来写vue -> nuxt.js框架