Vue路由實現頁面跳轉的兩種方式(router-link和JS)


Vue.js 路由可以通過不同的 URL 訪問不同的內容,實現多視圖的單頁 Web 應用

1、通過 <router-link> 實現

<router-link> 組件用於設置一個導航鏈接,切換不同 HTML 內容

使用方法:

  • 簡單寫法

<router-link to="demo2">demo2</router-link>

 

  • 使用 v-bind 的寫法

<router-link :to="'demo2'">demo2</router-link>

<!-- 也可以用{}包裹對應的path或name -->
<router-link :to="{ name: 'demo2' }">demo2</router-link>

 

  • 傳參的寫法

<router-link :to="{ name: 'demo2', params: { userId: 123 }}">demo2</router-link>

這里傳參需要在 router.js 中對 demo2 的路徑進行配置,在 path 中 demo2 后添加通配符 : 和對應的 userId,如下:

{
  path: '/demo2/:userId',
  name: 'demo2',
  component: demo2
},

配置完成后,頁面跳轉的結果就為 /demo2/123

這里的“123”就是上面的 userId

那么,如何在新頁面中獲取到傳過來的參數 userId 呢?

mounted 鈎子中使用 this.$route.params.xx. 獲取傳過來的參數,如下:

mounted () {
    alert(this.$route.params.userId)
}

// 彈出123

 

  • 傳入地址鍵值對

<router-link :to="{ path: 'demo2', query: { plan: 'private' }}">demo2</router-link>

頁面跳轉的結果為 /demo2?plan=private

(注意這里不用在 router.js 里配置路徑)

在新頁面中獲取到傳過來的地址鍵值對 plan,可以在 mounted 鈎子中使用 this.$route.plan.xx. 獲取傳過來的地址鍵值對,如下:

mounted () {
  alert(this.$route.query.plan)
}

// 彈出private

 

2、通過 JS 實現

template 部分:

<button @click="toURL">跳轉頁面</button>

script 部分:

(注意這里是 router,上面是 route)

  • 簡單寫法

methods:{
  toURL(){
    this.$router.push({ path: '/demo2' })
  }
}

 

  • 傳參的寫法

methods:{
  toURL(){
    this.$router.push({ name: 'demo2', params: { userId: 123 }})
  }
}

 

  • 傳入地址鍵值對

methods:{
  toURL(){
    this.$router.push({ name: 'demo2', params: { userId: 123 }, query: { plan: 'private' } })
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM