vue中路由巢狀 路由傳參

2021-09-24 05:57:51 字數 2062 閱讀 4396

在vue中使用vue-router方便我們進行頁面之間的跳轉,元件 (components) 對映到路由 (routes),然後告訴 vue router 在**渲染它們。每個路由應該對映乙個元件。

go to foo

go to bar

//實現路由跳轉的兩種方法,一種為path,另一種為name

//path: '/hello-world',

// name: 'helloworld2',

// 1. 定義 (路由) 元件。

// 可以從其他檔案 import 進來(常用)

const foo =

const bar =

// 2. 定義路由

const routes = [

, ]// 3. 建立 router 例項,然後傳 `routes` 配置

// 你還可以傳別的配置引數, 不過先這麼簡單著吧。

const router = new vuerouter()

// 4. 建立和掛載根例項。

// 記得要通過 router 配置引數注入路由,

// 從而讓整個應用都有路由功能

router

//通過注入路由器,我們可以在任何元件內通過 this.$router 訪問路由器,

//也可以通過 this.$route 訪問當前路由

routes: [

// 動態路徑引數 以冒號開頭

]

乙個「路徑引數」使用冒號 : 標記。當匹配到乙個路由時,引數值會被設定到 this.$route.params,可以在每個元件內使用。

兩者的不同在於:params是路由的一部分,必須要在路由後面新增引數名。query是拼接在url後面的引數,沒有也沒關係。

獲取引數:

this.$route.params,

this.$route.query

//params如果在路由配置檔案中沒有使用佔位符的話,重新整理後獲取不到沒有使用佔位符傳遞的params引數

router和route的區別

1.router是vuerouter的乙個物件,通過vue.use(vuerouter)和vuerouter建構函式得到乙個router的例項物件,這個物件中是乙個全域性的物件,他包含了所有的路由包含了許多關鍵的物件和屬性。有$router.push等方法

2.route是乙個跳轉的路由物件,每乙個路由都會有乙個route物件,是乙個區域性的物件,可以獲取對應的name,path,params,query等

,

children:[,,

]},

除了使用 router-link 建立 a 標籤來定義導航鏈結,我們還可以借助 router 的例項方法,通過編寫**來實現

// 字串

router.push('home')

// 物件

router.push()

// 命名的路由

router.push(})

// 帶查詢引數,變成 /register?plan=private

router.push(})

注意:如果提供了 path,params 會被忽略,上述例子中的 query 並不屬於這種情況。取而代之的是下面例子的做法,你需要提供路由的 name 或手寫完整的帶有引數的 path:

const userid = '123'

router.push(}) // -> /user/123

router.push(` }) // -> /user/123

// 這裡的 params 不生效

router.push(}) // -> /user

Vue中路由傳參

按大類有兩種傳遞方式,分別是params和query。其中params又分為兩種,即在url中顯示引數和不顯示引數。1 params傳參,顯示引數 這種情況屬於動態路由,需要提前在路由中配置好,如 path user id component user 如id為12345,這時導航欄中的url會顯示...

Vue巢狀路由

src components index page index2 router index.js main.js html部分 2級頁面在此顯示 import vue from vue import router from router 引入router.js import vuex from vu...

vue 巢狀路由

在乙個頁面中如果想實現三個頁面的拼接組成乙個頁面,這時候就用到巢狀路由了。第一種方法 1.頂部頁面 views home.vue class drophead 個人資訊 退出2.左側欄頁面 view menusecond.vue 3.右側欄頁面 view menuthird.vue 需簽約檢視 路由...