能说下vue-router中常用的路由模式实现原理吗?
hash模式
1.location.hash的值实际就是URL中#后面的东西,他的特点在于:hash虽然出现在URL中,但不会被包含在HTTP请求中,对后端完全没有影响,因此改变hash不会加载页面。
2.可以为hash的改变添加监听事件,每一次改变hash,都会在浏览器的访问历史中增加一个记录利用hash的以上特点,就可以来实现前端路由“更新视图但不更新请求页面”的功能了。
特点:兼容性好但是不美观
history模式:
history的跳转,浏览器是会向服务器发起一个该路径的请求,服务器是需要有这样的接口,否则就会返回404。
真正的项目里应用哪一个?一般会用history,关于支付,或者需要编译的一些网站这个#可能有其他含义,一旦处理不好,就会有安全问题。
特点:虽然美观,但是刷新会出现404,需要后端进行配置