vue this.$router.push 页面传值问题

在修改一个别人的bug的时候发现一个问题, 记录一下, vue前端页面在刷新页面后只读页面可以编辑了

在前一个传值页面他的写法是

this.$router.push({
        name:'xxx',
        query:{
          isEdit:false
          }
      });

在接收的时候写的是

this.isEdit = this.$route.query.isEdit ? true : false;

this.$router.push在传值的时候有两种方式,分别为如下,

1. 其中 name和params搭配, 参数在url上不显示, 值的类型是object, 支持json, 但是页面刷新后值就没有了

2. path和query搭配, 参数在url上显示, 值的类型都是string, 不能使用bool等类型, 页面刷新后还有

3. path不能和param搭配使用, 使用后参数无法读取

4. name和query也最好不要使用, 使用后参数可以获取到, 但是第一次为object类型, 刷新后变为string

上诉bug就是这种情况, 页面刷新后false由bool类型变为了string, 永远为true

      //方式1
      this.$router.push({
        name:'xxx',
        params:{
          isEdit:false
          }
      });
      //取值
      this.$route.params.isEdit

      //方式2
      this.$router.push({
        path:'xxx',
        query:{
          isEdit:false
          }
      });
     //取值
      this.$route.query.isEdit

 

posted @ 2023-05-04 16:51  范斯  阅读(208)  评论(0编辑  收藏  举报