代码之家  ›  专栏  ›  技术社区  ›  laptou

为什么用beforewouteenter代替mounted?

  •  -1
  • laptou  · 技术社区  · 6 年前

    为什么 beforeRouteEnter vue路由器中是否存在导航保护?有这样的例子吗 mounted 不会吗?如果没有,您希望在什么情况下使用 安装 ?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Giovane    6 年前

    mounted 是任何Vue组件的生命周期挂钩,它将始终被触发。关于 beforeRouteEnter 或者由 vue-router 允许您控制您的应用程序。

    例如,假设您有一个名为 bar foo ,您可以在这个钩子中插入验证逻辑,而不是检查全局保护中的每个路由更改。

    export default {
      name: 'Bar',
      beforeRouteEnter(to, from, next) {
        if (from.name === 'foo') {
          next(); // Calling next allow the route to proceed
        } else {
          next(false); // Don't allow the navigation
          // or
          next({
            name: 'foo',
            query: {
              from: 'bar'
            }
          }); // Redirect to any desired route as navigation made in $router
        }
      }
    }