Vue路由有3种模式,分别是:
- hash模式
- history模式
- memory模式
hash模式
hash模式url地址带#,它的原理是利用window.onhashchange事件,当一个页面窗口的url地址#有变动的时候就会触发onhashchange函数的调用,
比如刚开始的url是127.0.0.1:8081/#home,修改为127.0.0.1:8081/#about,则会触发window.onhashchange函数,此时vue就会加载about页面的内容。
VueRouter默认就是hash模式
history模式
history模式url地址不带#,显然这种模式会直接访问服务端,所以需要修改nginx配置,让url落到同一个页面
location / {
try_files $uri $uri/ /index.html;
}
因为vue-router默认是hash模式,所以需要修改vue的路由配置
const router = new VueRouter({
routes,
mode:'history' // 没有#的hostroy模式
})
memory模式在前面两种模式中中,页面的变动都是随着url的变动而变动的,在浏览器中使用是没有问题的,如果是app中显然不适合这些模式的路由,
而memory模式的原理是使用localstorage,适用于app路由。