简单的说,我们打开一个页面,这个页面是个单页应用:http://www.this-is-a-spa.com/
所以它仅仅只有一个页面,不过作者却做了好几个 URL:
http://www.this-is-a-spa.com/a
http://www.this-is-a-spa.com/b
http://www.this-is-a-spa.com/c
...
这些 URL 不会直接传给服务器,而是会被浏览器消化处理掉.
这样做,我们可以:
当浏览器读取到其中一个注册到前端路由中的 URL 请求时,比如
http://www.this-is-a-spa.com/a
时,可以触发预先写好的事件 A,所以当访问到这个 URL 后就可以直接触发到事件。在编写的时候可以用<a href="/a">Event A</a>
来触发事件,而可以不用addEventListener("click", ...)
这种写法,当项目逻辑比较复杂的时候,这种组织方式比写一大堆事件注册要好很多.(当然上 SPA 一般都用到了框架,这种方式只是一种选择)用户可以收藏
http://www.this-is-a-spa.com/a
至收藏夹,打开后直接触发/a
的事件(然后就自动加载数据或是什么别的事情),而没有做前端路由的 SPA 则达不到这样的效果,其 URL 从头到尾都是不变的.
所以~
什么是前端路由:路由交给浏览器处理就算是吧?有没有教科书式的标准定义?
什么时候适合用:SPA 就可以用,其实还是看产品需求.
优点:如上;