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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章