一谭跨、路由的默認路徑:
//配置一個映射
const routers = {
path: '/',
redirect: ''
// path 配置的是根路徑诞挨,redirect是重定向香伴,即把根路徑重定向到redirect后的路徑。
}
*默認情況下呛踊,路徑的改變使用的是URL的hash,若要改變?yōu)镠TML5的history模式
(即路徑里沒有錨點#)啦撮,可以做如下配置:
const router = new VueRouter ({
routes,
mode: 'history'
})
二谭网、 router-link標簽的屬性
--> to=" " :用于指定跳轉的路徑
--> tag=" " :用于指定<rouer-link>之后渲染成組件的類型
--> replace: replace 不會留下history記錄,所以在指定replace的情況下赃春,后退鍵不
能返回到上一個頁面中愉择。
-->active-class:當<router-link>對應的路由匹配成功時,會自動給當前元素設置一個
router-link-active的class织中,設置active-class可以修改默認的名稱
a.在進行高亮顯示的導航菜單或者底部tabber時锥涕,會用到該類。
三狭吼、通過代碼的方式跳轉路由:this.router.replace(' ')
四层坠、通過代碼的方式傳遞數(shù)據:this.router.push( { path : ' / path ' , query: { name: 'rdd', age: '18'} })
五、路由懶加載 router文件夾下的 index.vue
- 什么是路由懶加載刁笙?
->將每個路由的組件拆分為單獨的塊破花,并且僅在訪問此路由時才加載它
們,則效率會更高疲吸。
->將vue的異步組件功能和webpack的代碼拆分功能結合在一起座每,可以輕松的懶加載
路由組件。 - 路由懶加載方式
(1)方式一(推薦寫法)
//首先, 可以將異步組件定義為返回Promise的工廠函數(shù)(應將其解析為組件本身) :
const Foo = () => Promise.resolve({ /* component definition */ })
//其次摘悴,在webpack 2中,我們可以使用動態(tài)導入語法來指示代碼分割點:
import('./Foo.vue') // returns a Promise
結合以上兩者峭梳,這就是如何定義一個異步組件,該組件將由webpack自動代碼拆分:
const Foo = () => import(' ./Foo.vue”)
1/無需更改路由配置,只需Foo照常使用即可:
const router =
new VueRouter({
routes: [
{ path:' /foo ' , component: Foo}
]
})
(2)方式2(較早寫法)
const Home = resolve => { require.ensure(['../components/Home.vue'],
() => { resolve(require('../components/Home.vue')) })}
(3)方式3:AMD寫法
const About = resolve => required (['../components/About.vue'],resolve)
注:
a. require-amd
說明:同AMD規(guī)范的require函數(shù)蹂喻,使用時傳遞一個模塊數(shù)組和回調函數(shù)葱椭,模塊都
被下載下來且都執(zhí)行后才執(zhí)行回調函數(shù)
語法:require(dependencies: String[], [callback: function(...)])
參數(shù):
dependencies:模塊依賴數(shù)組
callback:回調函數(shù)
b. require-ensure
說明:require.ensure在需要的時候才下載依賴的模塊捂寿,當參數(shù)指定的模塊都下
載下來了(下載下來的模塊還沒執(zhí)行),便執(zhí)行參數(shù)指定的回調函數(shù)挫以。
require.ensure會創(chuàng)建一個chunk者蠕,且可以指定該chunk的名稱,如果這個
chunk名已經存在了掐松,則將本次依賴的模塊合并到已經存在的chunk中踱侣,最后
這個chunk在webpack構建的時候會單獨生成一個文件。
語法:require.ensure(dependencies: String[], callback: function([require]),
[chunkName: Strinf])
參數(shù):dependencies:依賴的模塊數(shù)組
callback:回調函數(shù)大磺,該函數(shù)調用時會傳一個require參數(shù)
chunkName:模塊名抡句,用于構建時生成文件時命名使用
注意:require.ensure的模塊只會被下載下來,不會被執(zhí)行杠愧,只有在回調函數(shù)使
用require(模塊名)后待榔,這個模塊才會被執(zhí)行。