你怎么知道你不能返回 VueJS

How do you know if you can't go back VueJS

回不去想写一个链接首页的方法

有点像这样的代码:

      if (**router.back.length == 0**){
         router.push({name:"Home"})
       }else {
         router.back();
       }
    }

问题是我不知道如何判断 .back () 是否可行。

我目前在一个未找到的页面上,我使用以下重定向转到当前页面

    path: "/:catchAll(.*)",
    name: "PageNotFound",
    component: () =>
      import(/* webpackChunkName: "NotFound" */ "@/views/PageNotFound.vue")
  }

感谢您的帮助!

有过一次类似的案例。尝试这样的事情(将其视为伪代码):

  data: () => ({
     fromRoute: null
  }),
  beforeRouteEnter (to, from, next) {
    next(vm => {
      vm.fromRoute = from;
    })
  },
  methods: () {
    handleBack() {
      if (!this.fromRoute.name) {
        router.push({name:"Home"});
      } else {
        router.back();
      }
    }
  }

更多信息在这里:https://forum.vuejs.org/t/how-to-go-back-or-go-home/30242/3

使用此代码可以达到预期的效果。确保您使用的是 [Named Routes][1].

export default {
  data() {
    return {
      fromRoute: null
    };
  },
  beforeRouteEnter(to, from, next) {
    next((vm) => {
      vm.fromRoute = from;
    });
  },
  methods: {
    goBack() {
      if (!this.fromRoute.name) {
        this.$router.push("/");
      } else {
        this.$router.back();
      }
    },
  },
};


  [1]: https://router.vuejs.org/guide/essentials/named-routes.html

通过查看 VueJs 文档,我找到了解决方案

goBack() {
      if(this.$router.getRoutes().length==0){
        this.$router.push({name:"Home"})
      }else{
        this.$router.back();
      }
    }

https://router.vuejs.org/api/#router-onready