這篇文章主要介紹Vue-Router怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在閩清等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計 網(wǎng)站設計制作按需求定制制作,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,成都營銷網(wǎng)站建設,外貿(mào)網(wǎng)站建設,閩清網(wǎng)站建設費用合理。
使用 Vue.js 做項目的時候,一個頁面是由多個組件構(gòu)成的,所以在跳轉(zhuǎn)頁面的時候,并不適合用傳統(tǒng)的 href,于是 vue-router 應運而生。
路由,其實就是指向的意思,當我點擊頁面上的home按鈕時,頁面中就要顯示home的內(nèi)容,如果點擊頁面上的about 按鈕,頁面中就要顯示about 的內(nèi)容。Home按鈕 => home 內(nèi)容, about按鈕 => about 內(nèi)容,也可以說是一種映射. 所以在頁面上有兩個部分,一個是點擊部分,一個是點擊之后,顯示內(nèi)容的部分。
點擊之后,怎么做到正確的對應,比如,我點擊home 按鈕,頁面中怎么就正好能顯示home的內(nèi)容。這就要在js 文件中配置路由。
官方文檔: https://router.vuejs.org/zh-cn/essentials/getting-started.html
Vue-Router的最簡單使用
1.先注冊路由
2.將路由注冊到VM組件中
3.定義組件
4.頁面定義跳轉(zhuǎn)路徑
使用Router-Link替代a標簽
這么做主要是為了去掉a標簽中的為了匹配hash地址的“#”,如下
登錄 注冊
同時,我們還可以利用tag標簽來渲染router-link元素,router-link默認渲染為a鏈接元素,使用tag標簽可以渲染其他元素,上述代碼中渲染為span元素了。無論渲染成什么元素,都依然與a連接一樣擁有跳轉(zhuǎn)的點擊事件
重定向技術(shù)以及默認路徑
默認路徑
我們可以使用默認路徑的方式指定根路徑,只需要在上述路由定義的方式中加入默認路徑即可
var routerObj = new VueRouter({ routes:[ //此處的component只能使用組件對象,而不能使用注冊的模板的名稱 {path:"/",component:login}, {path:"/login",component:login}, {path:"/register",component:register} ] })
重定向方式指定默認路徑
同樣的使用一行代碼即可直接重定向到login路徑下,相比上述的默認路徑,此方式在url的展示上更為明顯
var routerObj = new VueRouter({ routes:[ //此處的component只能使用組件對象,而不能使用注冊的模板的名稱 {path:"/",redirect:"/login"}, {path:"/login",component:login}, {path:"/register",component:register} ] })
路由選中之后高亮設置
使用默認類設置為高亮
Vue為router-link內(nèi)置了一個連接點擊之后高亮的類router-link-active,即可以在自己的style中設置
使用自定義類名
當我們想使用第三方定義的選中樣式,或者是自己想定義更為簡潔的樣式,可以使用linkActiveClass來定義,即在路由初始化時指定類名,在指定樣式時再自定義樣式
var routerObj = new VueRouter({ routes:[ //此處的component只能使用組件對象,而不能使用注冊的模板的名稱 {path:"/",redirect:"/login"}, {path:"/login",component:login}, {path:"/register",component:register} ], linkActiveClass:'myactive' })
指定樣式
路由傳參
使用query方式傳遞參數(shù)
首先我們再設置路由鏈接是指定參數(shù)
登錄
且可以指定并獲取多個參數(shù),主要是再定義的組件對象內(nèi)部使用created方法來獲得
var login={ template:'登錄組件---{{$route.query.id}}--{{$route.query.name}}
', created(){ console.log(this.$route.query.id) } }
使用params方式傳遞參數(shù)
首先我們在路由定義的時候采用:定義params參數(shù)
var routerObj = new VueRouter({ routes:[ //此處的component只能使用組件對象,而不能使用注冊的模板的名稱 {path:"/login/:id/:name",component:login}, {path:"/register",component:register} ], })
在實際使用過程中如何傳遞
登錄 注冊
在組件中使用
var login={ template:'登錄組件---{{$route.params.id}}
', created(){ console.log(this.$route.params.id) } }
路由嵌套的實現(xiàn)
Account 這是 Account 組件
登錄 注冊
主要是由children屬性來實現(xiàn)的,上述代碼中由三個易錯點
1.定義路由時,子路由沒有‘/'
2.在父組件中定義子組件要寫子組件的全路徑
3.在父組件中定義組件同樣要加入router-view元素
案例:路由命名視圖實現(xiàn)經(jīng)典布局
命名視圖在定義路由時使用components屬性(注意不是component)來定義:
var routerObj = new VueRouter({ routes:[ //此處的component只能使用組件對象,而不能使用注冊的模板的名稱 {path:"/",components:{ default:header, left:leftBox, main:mainBox }}, ] })
幾個組件分別定義如下
var header={ template:'頭部區(qū)域
' } var leftBox={ template:'左部菜單區(qū)域
' } var mainBox={ template:'主體內(nèi)容區(qū)域
' }
我們在頁面上使用上述命名視圖時使用router-view的name屬性來定義
未使用命名屬t性name設置視圖組件的將采用default命名視圖
設置一下樣式
以上是“Vue-Router怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!