vue3 携带参数跳转|router传参方式

携带参数跳转|router传参

A页面点击按钮后携带参数跳转到B页面

原理

  • 导入router import { useRouter } from “vue-router”;
  • A页面传参router.push({})
  • B页面接收route.params.num;

demo

route.js

{ path: '/A', name:'A',component: () => import('pages/A.vueB') },
{ path: '/B', name:'B',component: () => import('pages/B.vue') }

A页面

<template>
  <button @click="go">跳转</button>
</template>
<script>
import { useRouter } from "vue-router";
export default ({
    setup(props, ctx) {
        //router是全局路由对象,route= userRoute()是当前路由对象
        let router = useRouter();
        const go=()=>{
            router.push({
            //传递参数使用params的话,只能使用name指定(在route.js里面声明name)
            name:"B",
            params:{
                num:1
            }
            /* 使用query的话,指定path或者name都行
            path:'/home',
            query:{
            num:1
            } */
            })
        }
        return{
            go,
        }
    }
})
</script>

B页面

<template>
  {{ num }}
</template>
<script>
import { useRoute } from "vue-router";
export default {
  setup(props, ctx) {
    //router是全局路由对象,route= userRoute()是当前路由对象
    let route = useRoute();
    const num = route.params.num;
    console.log(num);
    return {
      num,
    };
  },
};
</script>

vue路由跳转,参数的携带与获取

// 参数的携带两种方式如下
(1) this.$router.push({ name:'orderDetail', params:{id:14} })
(2) this.$router.push({ path:'/microcosm/orderDetail', params:{id:14} })
// 获取参数 对应上面的顺序
(1) this.$route.params.id
(2) this.$route.query.id

第一种方式

(1)携带的参数没有拼接在url地址后面;数据比较保密,但是name属性要在路由表中配置name属性

(2)但是跳转到对应页面后,刷新该页面携带的参数会丢失,如果是根据携带参数获取的数据,会出现一定的问题

第二种方式

(1)携带的参数拼接在url地址后面;不用再路由表中配置name属性

(2)跳转到对应的页面后,刷新页面不会出现上一个页面携带的参数丢失的情况

以上方式可以根据项目的需求进行选择。

我本人一般选择的是第二种方式,一般把数据拼接在url后面的,都是一些不重要的数据,最重要的是不会出现刷新页面,出现携带的数据丢失情况 

好了,这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 详解vue 路由跳转四种方式 (带参数)
  • vue-router实现组件间的跳转(参数传递)
  • vue路由跳转传递参数的方式总结
  • 关于vue中路由的跳转和参数传递,参数获取
张贴在2