首页 > 编程知识 正文

路由之间传参,路由传参的方法

时间:2023-05-06 02:36:10 阅读:241803 作者:4468

文章目录 一、 问题二、解决办法1、设置浏览器不保存当前路由历史记录(没有解决,因为一些奇奇怪怪的原因)1、声明式路由2、编程式3、原生js实现 2、有没有一直页面之间的传值方式是可以不记录在路由上的1、使用query传值--地址栏可见2、使用params传值--地址栏不可见注意一点,在请求的时候需要写上在router下面index.js里面的name,我刚开始忘了写,页面不知道跳到哪里了,我一脸懵,这个方法一定要写name不然参数就没有

一、 问题

我先形容一下,从这个页面(图1)点击去,直接激活相应的vant-tab(如图2),因为我是用的路由传参,实现了这个功能,但是有个问题就是我在这个页面点击多次其他的vant-tab,浏览器会有history,所以我点返回只会改变这里的路由变成前几次点击的vant-tab,但是我想直接回到我给你看的那个个人中心,的页面,我要想个什么办法解决啊,有没有办法在这个页面点击的时候更新数据,路由也变化,但是不保存路由变化的历史记录啊

二、解决办法 1、设置浏览器不保存当前路由历史记录(没有解决,因为一些奇奇怪怪的原因)

在有些情况下,我们不想往路由里添加历史记录。(vue的项目,vue-router中不想存历史记录)

根据vue官网提供的,楼主总结了一下,主要有以下几种方案:


根据官网的解释 。声明式路由和编程式路由都是添加新的记录,同时vue还提供了replace来替换路由记录,从而实现路由不存历史记录的情况,以下是楼主总结的几种方法:

1、声明式路由

2、编程式

3、原生js实现 楼主晚上回去看了一下<js高程>,原生实现替换路由,不记录历史记录的方法window.open(“http://www.baidu.com…”);会往路由历史中添加一条记录(还有第二个参数,大家可自几去查看,在dom第7章)window.location.replace(“http://www.baidu.com…”); 会替换之前的历史记录,不会添加历史记录

原文链接https://blog.csdn.net/qq_39985511/article/details/83342716

2、有没有一直页面之间的传值方式是可以不记录在路由上的

嗯,好像有点印象,有的有的!!!

1、使用query传值–地址栏可见

比如从personal.vue跳转至order.vue,传id=‘0’,代码如下:

this.$router.push({ path: "/personal/order", query: { id: '0' } });

在order.vue通过地址栏的url 进行接收参数;
我是在order.vue页面的created这个函数里面进行接收的,
var id= this.$route.query.id;
就可以接收到id这个参数了;

2、使用params传值–地址栏不可见

这个方式要

注意一点,在请求的时候需要写上在router下面index.js里面的name,我刚开始忘了写,页面不知道跳到哪里了,我一脸懵,这个方法一定要写name不然参数就没有

可以和query一同传值;

this.$router.push({ path: "/personal/order", name: "Order", query: { name: 'name' }, params: { id: 0 } });

params传值在地址栏不可见,但是取值方式是和query一样的,我也是在created函数里面进行取值的;

var id= this.$route.params.id;

我是直接在router-link里面写,和在js写是一个意思
<router-link :to="{path:'/personal/order',params:{id:0},name:'Order'}" >

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。