美文网首页
vue-router -其他

vue-router -其他

作者: 杨健kimyeung | 来源:发表于2020-08-31 11:56 被阅读0次

    一、 重定向

    重定向也是通过 routes 配置来完成,下面例子是从 /me重定向到/home`:

    const router = new VueRouter({
      routes: [
        { path: '/me', redirect: '/home' }
      ]
    })
    

    重定向的目标也可以是一个命名的路由:

    const router = new VueRouter({
      routes: [
        { path: '/msg', redirect: { name: 'home' }}
      ]
    })
    

    甚至是一个方法,动态返回重定向目标:

    const router = new VueRouter({
      routes: [
        { path: '/a', redirect: to => {
          // 方法接收 目标路由 作为参数
          // return 重定向的 字符串路径/路径对象
        }}
      ]
    })
    

    二、HTML5 History 模式

    vue-router` 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

    如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

    const router = new VueRouter({
      mode: 'history',
      routes: [...]
    })
    

    当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

    不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

    所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

    三、处理 404

    创建一个名为 NotFound.vue 的视图组件,代码如下:

    <template>
        <div>
          页面不存在,请重试!
        </div>
    </template>
    
    <script>
        export default {
            name: "NotFount"
        }
    </script>
    
    <style scoped>
    
    </style>
    

    修改路由配置,代码如下:

        {
          path: '*',
          component: NotFound
        }
    

    当使用通配符路由时,请确保路由的顺序是正确的,也就是说含有通配符的路由应该放在最后。路由 { path: '*' } 通常用于客户端 404 错误。如果你使用了History 模式

    相关文章

      网友评论

          本文标题:vue-router -其他

          本文链接:https://www.haomeiwen.com/subject/hesusktx.html