對于前端來說,獲取url參數是非常常見的操作。Vue框架雖然不是針對獲取url參數而設計的,但其靈活的組件化和路由機制讓我們可以很方便地獲取url參數。
我們假設現在的url是:http://example.com?name=vue&age=3。
在Vue中我們可以使用$route對象來獲取當前路由信息。其中$route.query就是我們可以使用的查詢字符串對象,包含了所有通過url傳遞的參數。
this.$route.query //{ name: "vue", age: "3" }
如果我們想獲取其中的某一個參數,比如age,我們可以直接通過$route.query.age獲取:
var age = this.$route.query.age; // "3"
當然,如果我們要獲取的參數并不一定存在,我們可以使用一個默認值:
var height = this.$route.query.height || "180cm";
對于使用Vue Router的單頁應用,我們可以在路由跳轉時通過to屬性傳遞參數,跳轉后再通過$route對象獲取:
// 跳轉路由時傳遞參數go to about // 在about組件中獲取參數 this.$route.query.id // 參數值
如果我們想為路由設置動態參數,我們可以使用Vue Router中的動態路由。動態路由是指包含參數的路由地址,其中參數一般使用冒號(:)進行標識。例如:
//router.js中配置路由 { path: '/user/:id', component: User } //User.vue中獲取參數 this.$route.params.id
如果我們想在路由跳轉時傳遞動態參數,我們可以使用$route.push方法。注意:這里使用的是$route.push而不是$router.push。
//通過$route.push方法傳遞參數 this.$route.push('/user/' + userId)
通過以上方法我們可以輕松地實現在Vue中獲取url參數。相信對于前端開發者來說,這個功能已經是家常便飯了吧。
上一篇html的源代碼的展示