模式
vue-router中的模式选项主要在router实例化的时候进行定义的,如下
const router = new VueRouter({
mode: 'history', // 两种类型history 还有 hash
routes: routes // 可以缩写成routes
})
有两种模式可供选择,history 和 hash,大致对比一下,
模式
优点
缺点
hash
使用简单、无需后台支持
在url中以hash形式存在,不会传到后台
history
地址明确,便于理解和后台处理
需要后台配合
hash模式对于后台来讲就是一个url,因为地址中的hash值是不会传到后台的,所以服务器端做一个根地址的映射就可以了。
history模式最终的路由都体现在url的pathname中,这部分是会传到服务器端的,因此需要服务端对每一个可能的path值都作相应的映射。或者采用模糊匹配的方式进行映射。
除此之外,history模式下,如果后端不是一对一的进行映射,而是模糊匹配的话,那么就要注意一下404的情况了。这个时候就需要在前端router中定义404页面了。
404路由的定义
由于router本身的匹配是从上到下的,如果在前面找到了匹配的路由,就跳转了。因此可以直接在最后添加404的路由,如下