vue3 携带参数跳转|router传参方式
目录
- 携带参数跳转|router传参
- 原理
- demo
- vue路由跳转,参数的携带与获取
- 第一种方式
- 第二种方式
携带参数跳转|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后面的,都是一些不重要的数据,最重要的是不会出现刷新页面,出现携带的数据丢失情况
好了,这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
赞 (0)