Vue路由有3种模式,分别是:

  1. hash模式
  2. history模式
  3. 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路由。