【问题标题】:How do you know if you can't go back VueJS怎么知道回不去 VueJS
【发布时间】:2021-07-19 22:11:37
【问题描述】:

如果无法返回,我想写一个链接到主页的方法。

有点像这样的代码:

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

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: vue.js router history


    【解决方案1】:

    曾经有过类似的情况。尝试这样的事情(将其视为伪代码):

      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

    【讨论】:

    • 不幸的是,“if”条件总是有效的,我从不输入“else”。我有 console.log(this.fromRoute.name) 而这个 fromRoute 总是“未定义”。
    【解决方案2】:

    使用此代码来实现所需的结果。确保您使用的是[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
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 2014-02-05
        • 1970-01-01
        相关资源
        最近更新 更多