第一个阶段——前后端不分离
前后端不分离的时候,并没有前端路由的这个概念,如果我们切换页面,都是向后端发送命令,由后端帮我们组装一个html返回给我们,前端的主要工作就是进行展示;所以这种情况下,一旦网络有延时,则都会造成用户体验不好。
另外如果页面想要获取新的数据则必须通过刷新页面才能进行获取。
第二个阶段——ajax的出现
允许人们在不刷新页面的情况下发送请求,同时为了满足"不刷新页面即可更新页面内容"的需求,所以spa(单页面应用)也就此出现(ps: spa详解点击这里)
但是这种也暴露了一些缺点:
- spa不能记录当前页面具体处于哪一步,甚至有可能存在页面不停的“局部前进”,才好不容易到达的某一页,但是一刷新就全没有了,所以spa记不住当前页面进行到哪一步
- 只有一个
url给页面做映射,这对seo也不够友好(ps: seo详解点击这里)
第三个阶段——前端路由
前端路由的工作就是为了记住用户进行到哪一步了——为spa中各个视图匹配一个唯一的标识。
存在的问题:
- 用户刷新页面,重新加载资源(目的只是为了加载数据,并不需要重新加载其他的一些静态资源)
- 单页面应用对服务器来说,就是一个url,一套资源,但是如何做到用“不同的URL”来映射不同的视图内容
如何解决?
- 拦截用户的刷新操作,通过前端路由的方式消耗掉
- 改造url,但不影响真实的url,并对url实时监听,从而达到url变化,加载不同的内容