《Vue Router》

215 阅读2分钟

一. 什么是路由

什么是路由器?一个人在家里要上网,就要连路由器,路由器连电信,电信卖IP端口,百度,抖音就购买端口。当你在手机上打开抖音,这个请求就由路由器分发出去到抖音,然后把你要的信息传回来。路由主要就是分发请求的,路由器就是用来分发请求的东西

二. hash history

1. hash模式

请求的路径url后边/#1,#就代表hash模式。

hash模式在任何情况下都可以做前端路由。但是有一个缺点:SEO不友好。因为服务器是收不到hash的 。举例:搜索baidu.com/#1,打开开发者工具的Network,发现请求的url把#省去了。也就是说,服务器收不到hash。不管你搜索baidu.com/#xxx,不管xxx是什么,服务器都会默认返回默认页面就是baidu.com/。但是你输入/#xxx,是想得到不同的页面,但是服务器只会给你返回同一个默认的页面。里边的信息就无法收录,就导致SEO不友好。

2. history模式

什么情况下可以使用history模式呢?只有一种情况:后端将所有的前端路由都渲染到同一个页面。即,不管你请求什么路由,都得到同一个页面。(这个同一个页面不能是404页面,应该是某个有用的页面)

比如:请求/a , /b 都得到同一个页面。如果能实现这样的技术,那就可以用history模式

3. memory模式

前边两种模式都是通过不同的url得到结果。memory模式是把路径存到一个用户看不见的地方,比如localStorage。而搜索的路径url是不变的,通过从存储库里取出不同的路径来实现路由。

memory模式适合非浏览器路由,比如app里的路由,它不是网页,是没有路径的。所以就只能用memory模式。再比如react native,也是没有路径的。

总结

hash 和 history 都是把路径存在url上的,memory不用url。memory的缺点就是没有url,因为路径没有放到url上,而是存在本地的存储库里,所以这是单机版路由,我分享出去这个网址,由于你那里没存路径信息,所以维持初始的路由。