文章目录 一、 问题二、解决办法1、设置浏览器不保存当前路由历史记录(没有解决,因为一些奇奇怪怪的原因)1、声明式路由2、编程式3、原生js实现 2、有没有一直页面之间的传值方式是可以不记录在路由上的1、使用query传值--地址栏可见2、使用params传值--地址栏不可见注意一点,在请求的时候需要写上在router下面index.js里面的name,我刚开始忘了写,页面不知道跳到哪里了,我一脸懵,这个方法一定要写name不然参数就没有
一、 问题
我先形容一下,从这个页面(图1)点击去,直接激活相应的vant-tab(如图2),因为我是用的路由传参,实现了这个功能,但是有个问题就是我在这个页面点击多次其他的vant-tab,浏览器会有history,所以我点返回只会改变这里的路由变成前几次点击的vant-tab,但是我想直接回到我给你看的那个个人中心,的页面,我要想个什么办法解决啊,有没有办法在这个页面点击的时候更新数据,路由也变化,但是不保存路由变化的历史记录啊
在有些情况下,我们不想往路由里添加历史记录。(vue的项目,vue-router中不想存历史记录)
根据vue官网提供的,楼主总结了一下,主要有以下几种方案:
根据官网的解释 。声明式路由和编程式路由都是添加新的记录,同时vue还提供了replace来替换路由记录,从而实现路由不存历史记录的情况,以下是楼主总结的几种方法:
原文链接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这个参数了;
这个方式要
注意一点,在请求的时候需要写上在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'}" >