文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue3使用vue-router如何实现路由跳转与参数获取

2024-04-02 19:55

关注

vue-router实现路由跳转与参数获取

路由跳转和传参

import { defineComponent, onMounted, reactive, readonly, ref } from 'vue';
import { useRouter, useRoute } from 'vue-router';
export default defineComponent({
  name: 'Login',
  setup() {
    const router = useRouter(), route = useRoute();
    const submitForm = () => {
      formRef.value?.validate((valid) => {
        if (valid) {
          login({ strategy: 'local', ...ruleForm })
            .then((res: any) => {
            // 获取参数和路由跳转
              const redirect: string = route.query && route.query.redirect;
              if (redirect) {
                router.replace(redirect);
              } else {
                router.push('/home');
              }
              return true;
            })
            .catch((e) => {
              ...
            });
        } else {
         ...
          return false;
        }
      });
    };
    return { ..., submitForm };
  }
});

路由跳转三种方法的总结

一、第一种

1、路由设置方式

{`在这里插入代码片`
  path: '/detail/:id',
  name: 'detail',
  meta: { keepAlive: true },
  component: () => import('../pages/detail/index')
}

2、路由跳转模式

this.$router.push(
  {
    path: `/detail/1`
  }
)

3、获取参数方式

let detailId = this.$route.params.id

注意: params 传参相当于是路由的一部分是必须传的东西,经过验证不传页面会跳转到空白页

该方式刷新页面id 不丢失

二、第二种

1、路由设置方式

{
  path: '/detail/:id',
  name: 'detail',
  meta: { keepAlive: true },
  component: () => import('../pages/detail/index')
}

2、路由跳转模式

this.$router.push(
  {
    name: 'Detail',
    params: {
      id
    }
  }
)

3、获取参数方式

let detailId = this.$route.params.id

注意:此方式传参 路由设置方式中的 id 可以传也可以不传,不传刷新页面id 会丢失

该方式刷新页面id 不丢失

三、第三种

1、路由设置方式

{
  path: '/detail',
  name: 'detail',
  meta: { keepAlive: true },
  component: () => import('../pages/detail/index')
}

2、路由跳转模式

this.$router.push(
  {
    path: 'Detail',
    query: {
      id
    }
  }
)

3、获取参数方式

let detailId = this.$route.query.id

注意:此方式传参 路由设置方式中的 id 不能写,因为写了就是router 的一部分,这样就会匹配不到, 此方式刷新页面id 不丢失

http://localhost:8080/#/detail?id=1

总结: params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯