想要在页面刷新后根据当前路由路径判断当先活跃的菜单,故期望通过this.$route.path来获取当前路径,但在created和mounted中this.$route.path值都为/。
解决:在mounted中使用setTimeout在定时器中获取path

mounted () {
    // 不使用setTimeout无法在created和mounted中获取到this.$route的实际值
    setTimeout(() => {
      const curPath = this.$route.path
      this.allMenus.find(it => {
        if (it.url && curPath.startsWith(it.url)) {
          this.activeId = it.id
          return true
        }
      })
    }, 100)
  },

参考:vue2.0页面刷新后无法从mounted中获取url(this.$route)信息的解决办法

Logo

前往低代码交流专区

更多推荐