Vue3的路由跳转传参接参

路由跳转

vue2路由跳转点击这里

分为2种方法

query ========
通过 router.push{
path:'跳转路径',
query{
传入参数
}
}
然后通过route.query来进行接收
a页面
<template>
  <div class="main">
      <el-button
        style="width: 100px; margin: 0 40%"
        type="primary"
        @click="btnnext"
        >登录</el-button>
  </div>
</template>
<script lang='ts'>
import { reactive, toRefs,onMounted,} from "vue";
import { useRouter,useRoute} from 'vue-router';//要引入路由
export default {
  name: "",
  setup() {
    let router = useRouter(),route = useRoute();
    const data = reactive({
      btnnext(){
        router.push({
        //name: 'Home',//这个query的话使用path再次刷新会页面空白最好用name
          path:'/',
          query: {
           mallCode: "M000989",
        },
        })
      },
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  },
};
</script>
<style scoped>

}
</style>
b页面
<template>
  <div class="main">
     <div class="header">{{num}}</div>
  </div>
</template>
<script lang="ts">
import {reactive,toRefs} from 'vue';
import { useRouter,useRoute} from 'vue-router';
// router是全局路由对象,route是当前路由对象
export default({
  name: 'Home',
  setup(){
    let route = useRoute();
    const data = reactive({
      num:route.query.mallCode,
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  }
});
</script>
<style lang="less" scoped>
.main{
  width: 100%;
  height: 100vh;
  .header{
    color: red;
  }
}
</style>
params ========
a页面
<template>
  <div class="main">
      <el-button
        style="width: 100px; margin: 0 40%"
        type="primary"
        @click="btnnext"
        >登录</el-button>
  </div>
</template>
<script lang='ts'>
import { reactive, toRefs,onMounted,} from "vue";
import { useRouter,useRoute} from 'vue-router';//要引入路由
export default {
  name: "",
  setup() {
    let router = useRouter(),route = useRoute();
    const data = reactive({
      btnnext(){
        router.push({
         name: 'Home',//这个是路由的name
         params: {
          mallCode: "M000989",
        },  
        })
      },
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  },
};
</script>
<style scoped>

}
</style>

b页面
<template>
  <div class="main">
     <div class="header">{{num}}</div>
  </div>
</template>
<script lang="ts">
import {reactive,toRefs} from 'vue';
import { useRouter,useRoute} from 'vue-router';
// router是全局路由对象,route是当前路由对象
export default({
  name: 'Home',
  setup(){
    let route = useRoute();
    const data = reactive({
   
      num:route.params.mallCode
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  }
});
</script>
<style lang="less" scoped>
.main{
  width: 100%;
  height: 100vh;
  .header{
    color: red;
  }
}
</style>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中,可以使用三种方式进行路由跳:通过params、query和动态路由。 1. 通过params进行: 在跳前,使用`router.push`方法,并在`params`对象中指定数名和对应的值。例如: ```javascript function acty() { router.push({ name: 'tiaozhn', params: { id: "aaa" } }) } ``` 在目标组件中,可以通过`$route.params`来获取递的数。例如: ```javascript console.log($route.params.id); ``` 这样就可以获取到递的数值。 2. 通过query进行: 在跳前,使用`router.push`方法,并在`query`对象中指定数名和对应的值。例如: ```javascript function acty() { router.push({ path: '/tiaozhn', query: { som: "Aaa" } }) } ``` 在目标组件中,可以通过`$route.query`来获取递的数。例如: ```javascript console.log($route.query.som); ``` 这样就可以获取到递的数值。 3. 使用动态路由进行: 在跳前,可以通过在路径中添加数来进行。例如: ```javascript function acty() { var id = 1; proxy.$router.push('/tiaozhn/' + id) } ``` 在目标组件中,可以通过`$route.params`来获取递的数。例如: ```javascript console.log(proxy.$route.params.id); ``` 这样就可以获取到递的数值。 总结:在Vue3中,可以使用params、query和动态路由这三种方式进行路由跳,根据需求选择合适的方式即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [VUE3 跳的三种方式](https://blog.csdn.net/qq_54602808/article/details/119789250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值