vue 頁面跳轉的實現方式

一、this.$router.push()

1、vue

<template>
  <div id='test'>
    <button @click='goTo()'>點擊跳轉4</button>
  </div>
</template>  

2、script

//跳轉前頁面傳參數:
goTo(item) {
  //storageData中數據用於跳轉到下一個頁面之後,進行返回時能夠返回到跳轉之前的頁面
  let storageData = {
    searchWords: this.keyWord,
    pageSize: this.paging.pageSize,
    pageNo: this.paging.currentPage 
  };
  //data中數據用於將本頁面中數據通過跳轉功能將其應用到下一個頁面,與父子組件傳值同理
  let data = {
    type: item.srcType,
    tableName: item.tableName,
    name: item.datasourceName,
    tableId: item.tableId,
    id: item.datasourceId,
  };
  //將下一個頁面中將會用到的數據全部push到$router中
  this.$router.push({
    //name表示跳轉之後的資源前端訪問路徑,query用於存儲待使用數據,其中page是本頁面name,
    name: 'onlineSearch',
    query: {targetData: data ,storageData,
      page:'search',
      isBackSelect: true,
      goBackName:'dataSearch'
    }
  })    
}

3、跳轉後的頁面中獲取上個頁面的參數值

//跳轉後頁面獲取參數:
mounted() {
  //查看是否已經參數是否傳至跳轉之後的頁面,若傳入,則根據需求進行調用
  console.log(this.$route.query.targetData;)
}

4、從跳轉後的頁面返回跳轉前頁面

//將返回函數寫到methods中
goBackSheet() {
  if(this.$route.query.goBackName === 'dataSearch'){
    this.$router.push({
      name: this.pageName,
      query: {
        storageData: this.$route.query.storageData,
        isBackSelect: true,
      }
    });
  }
}

二、router-link跳轉

1、 通過 to 屬性指定目標地址

  query相當於get請求,頁面跳轉的時候,可以在地址欄看到請求參數;

  query 刷新 不會 丟失 query裡面的數據;

  query要用path來引入。

  params相當於post請求,參數不會再地址欄中顯示;

  params 刷新 會 丟失 params裡面的數據;

  params要用name來引入。

<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}" @click.native='goTo'>User</router-link>

<!-- 帶查詢參數,下面的結果為 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}" @click.native='goTo'>Register</router-link>

2、跳轉後頁面

watch:{
   $route(to,from){
      //刷新頁面
      this.$router.go(1);
   }  
}

以上就是vue 頁面跳轉的實現方式的詳細內容,更多關於vue 頁面跳轉的資料請關註WalkonNet其它相關文章!

推薦閱讀: