一、router-link
1、不帶參數
<router-link :to="{name:'home'}"> <router-link :to="{path:'/home'}"> //name,path都行, 建議用name // 注意:router-link中鏈接如果是'/'開始就是從根路由開始,如果開始不帶'/',則從當前路由開始。
2、帶參數
<router-link :to="{name:'home', params: {id:1}}"> // params傳參數 (類似post) // 路由配置 path: "/home/:id" 或者 path: "/home:id" // 不配置path ,第一次可請求,刷新頁面id會消失 // 配置path,刷新頁面id會保留 // html 取參 $route.params.id // script 取參 this.$route.params.id <router-link :to="{name:'home', query: {id:1}}"> // query傳參數 (類似get,url后面會顯示參數) // 路由可不配置 // html 取參 $route.query.id // script 取參 this.$route.query.id
二、this.$router.push() (函數里調用)
1、描述:跳轉到不同的url,但這個方法會向history棧添加一個記錄,點擊后退會返回到上一個頁面。
2、用法:
1. 不帶參數 this.$router.push('/home') this.$router.push({name:'home'}) this.$router.push({path:'/home'}) 2. query傳參 this.$router.push({name:'home',query: {id:'1'}}) this.$router.push({path:'/home',query: {id:'1'}}) 查詢參數變成 /register?id=1
// html 取參 $route.query.id // script 取參 this.$route.query.id 3. params傳參 this.$router.push({name:'home',params: {id:'1'}}) // 只能用 name // 路由配置 path: "/home/:id" 或者 path: "/home:id" , // 不配置path ,第一次可請求,刷新頁面id會消失 // 配置path,刷新頁面id會保留 // html 取參 $route.params.id // script 取參 this.$route.params.id
注意:query和params區別
-
query類似 get, 跳轉之后頁面 url后面會拼接參數,類似?id= 1, 非重要性的可以這樣傳, 密碼之類還是用params刷新頁面id還在
-
params類似 post, 跳轉之后頁面 url后面不會拼接參數 , 但是刷新頁面id 會消失
三、this.$router.replace()
描述:同樣是跳轉到指定的url,但是這個方法不會向history里面添加新的記錄,點擊返回,會跳轉到上上一個頁面。上一個記錄是不存在的。
用法同上push
四、this.$router.go(n)
this.$router.go(n) // 向前或者向后跳轉n個頁面,n可為正整數或負整數
描述:相對於當前頁面向前或向后跳轉多少個頁面,類似 window.history.go(n)
。n可為正數可為負數。正數返回上一個頁面
// 在瀏覽器記錄中前進一步,等同於history.forward() this.$router.go(1) // 在瀏覽器記錄中后退一步,等同於history.back() this.$router.go(-1) // 前進三步記錄 this.$router.go(3) // 如果history記錄不夠用,那就默默地失敗唄 this.$router.go(100) this.$router.go(-100)
ps : 區別
1、this.$router.push
跳轉到指定url路徑,並想history棧中添加一個記錄,點擊后退會返回到上一個頁面
2、this.$router.replace
跳轉到指定url路徑,但是history棧中不會有記錄,點擊返回會跳轉到上上個頁面 (就是直接替換了當前頁面)
3、this.$router.go(n)
向前或者向后跳轉n個頁面,n可為正整數或負整數