鍍金池/ 問答/HTML/ 關于vue-router,進入同一地址view不刷新的問題

關于vue-router,進入同一地址view不刷新的問題

子組件的暫時的內容都是一樣,所以就請求了同一個組件,但是發(fā)現(xiàn)只有第一次發(fā)送了請求,后來再點擊就不發(fā)送了,子組件中的事件請求在created中執(zhí)行,請問有什么解決方法嗎?

//點擊按鈕進入子頁面
 panel(index, row) {
        this.index = index;
        if (this.selected == 'saved') {
          this.$router.push(
            {
              name:'inspectionPop',
              query:{
                name: 'name',
                title:'編輯',
                id:row.id,
              },
            }
          );
        }else if(this.selected == 'reject'){
          this.$router.push(
            {
              name:'inspectionPop',
              query:{
                name: 'name',
                title:'被退回',
                id:row.id,
              },
            }
          );
   }
//子路由:接收id參數(shù),并發(fā)送請求
created(){
      console.log(this.$route.query.id);
      if(this.$route.query.id !=''){
        this.getPanel(this.id)
      }
      this.getPersonList()
},
回答
編輯回答
維他命

// 子組件
使用beforeRouteUpdate, 可以在組件被復用時候調用

  beforeRouteUpdate (to, from, next) {
    // 在當前路由改變,但是該組件被復用時調用
    // 舉例來說,對于一個帶有動態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉的時候,
    // 由于會渲染同樣的 Foo 組件,因此組件實例會被復用。而這個鉤子就會在這個情況下被調用。
    // 可以訪問組件實例 `this`
    
     if(to.query.id !=''){
        this.getPanel(this.id)
      }
      this.getPersonList()
  },
2017年2月25日 15:06
編輯回答
浪蕩不羈

方案一,給組件添加一個key屬性,每次值不一樣。
方案二,觀察@route。

2017年2月26日 16:44