前言
关于前端路由的出现,我一直都有一个疑问。前端路由到底为何而存在,只是为了实现SPA吗?带着疑问,我查询过很多书籍和网络资料,在这些资料都说到了一点,那就是后端开发过程中,后端路由的实现,代码亢沉。极大的加重了服务器的压力。而前端路由也因此而诞生。将路由的实现由后端转为前端,用来减轻服务器的压力。其实,并不然。接下来,我就来记录一下自己对前端路由的一种理解吧
1. 前端路由的诞生
前端路由的存在是为了用户在不刷新页面的基础上,实现数据的刷新。也就是增强用户的交互体验。既然,说到不刷新页面的基础而实现数据的刷新,那就要说到AJAX技术了。
AJAX技术,全称 Asynchronous JavaScript And XML。是浏览器用来异步加载数据的一种技术方案。如果没有ajax技术的存在,当用户提交数据的时候,页面必然会重新刷新加载,那么就会影响到其他数据。出现重置现象。为了解决这个问题,所以,AJAX技术出现了。既然AJAX实现数据的异步加载,增强了用户的交互体验,那么用户交互体验的更高级的版本是什么?在目前来说,毫无疑问那就是SPA,也就是单页面应用。单页应用的概念是伴随着 MVVM 出现的。用户通过单页面应用可以实现多种页面交互功能,而不需要刷新页面。当然单页面应用不仅仅是在页面交互上市无刷新的,连页面的跳转它都是无刷新的。而为了实现这个更高级版本的AJAX技术。所以前端路由诞生了。
2. 前端路由的实现原理
前端路由的实现本质上就是URL到函数的一种映射方式,也可以说是检测URL的变化,通过截取URL的地址,然后解析来匹配路由规则(或者说通过截取URL地址的变化,来解析匹配所对应的函数,然后执行这个所对应的函数),更通俗的去说,其实“前端路由”这个词太唬人了,就是点击触发个onclick事件,然后通过这个事件修改DOM节点,让其展示或者隐藏。只不过前端路由点击的是“<a>”链接,在“<a>”链接中的href值加了个“#”符号,浏览器看到这个符号是不会解析的,也就不会跳转页面。同时触发个window.hashchange事件,在每次点有#的<a>的时候就触发,然后就可以写个函数操作dom了(改display)。
提个猜想:
既然SPA单页面应用就是AJAX的高级版本,那更高级的版本岂不是就是“离线操作”?,怎么感觉就是APP
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。