SPA单页面的理解?

145 阅读2分钟

一、什么是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框架