在Vue中,為了能夠通過頁面跳轉(zhuǎn)時傳遞數(shù)據(jù),我們需要使用Vue Router。Vue Router是Vue官方提供的路由管理工具,通過它可以實(shí)現(xiàn)SPA(Single Page Application)單頁面應(yīng)用的路由控制。然而,有時候我們需要在不同的路由之間傳遞數(shù)據(jù),這時候就需要使用Vue Router的prop屬性了。
首先,我們需要在路由配置文件中定義props:true,這樣我們就可以在跳轉(zhuǎn)的時候把參數(shù)通過prop傳遞給目標(biāo)組件。例如:
const router = new VueRouter({ routes: [ { path: '/article/:id', component: Article, props: true // 開啟 props 傳參 } ] })
這個例子中,通過定義props:true,就可以實(shí)現(xiàn)參數(shù)傳遞。接著,在組件中,可以通過props選項(xiàng)接收傳遞過來的參數(shù):
export default { props: ['id'], created() { console.log('路由參數(shù)id:', this.id) } }
在這個例子中,我們定義了props選項(xiàng),并定義了要接收的參數(shù)id。當(dāng)組件被創(chuàng)建時,在created生命周期函數(shù)中,就可以通過this.id獲取傳遞過來的id參數(shù)。這樣就完成了參數(shù)的傳遞。
不過需要注意的是,當(dāng)我們通過路由跳轉(zhuǎn)時,如果參數(shù)比較多,可以使用對象的方式進(jìn)行傳參。例如:
文章1
在這個例子中,我們使用對象的方式傳遞了兩個參數(shù):id和title。在路由配置文件中,也需要修改一下路由的路徑和組件名:
const router = new VueRouter({ routes: [ { path: '/article/:id/:title', name: 'article', component: Article, props: true // 開啟 props 傳參 } ] })
修改后,我們就可以在組件中接收傳遞過來的參數(shù)了:
export default { props: ['id', 'title'], created() { console.log('路由參數(shù)id:', this.id) console.log('路由參數(shù)title:', this.title) } }
當(dāng)路由跳轉(zhuǎn)時,就可以把傳遞過來的參數(shù)通過prop傳遞給目標(biāo)組件了。這樣就可以在不同的路由之間傳遞數(shù)據(jù)了。
總結(jié)一下Vue Router傳遞prop的方法:
- 在路由配置文件中,開啟props傳參,例如:props: true。
- 在組件中,通過props選項(xiàng)定義需要接收的參數(shù)。
- 當(dāng)路由跳轉(zhuǎn)時,可以通過對象的方式傳遞多個參數(shù)。
- 在路由配置文件中,也需要修改路由的路徑和組件名,以匹配傳遞的參數(shù)。
- 通過this.props獲取傳遞過來的參數(shù),實(shí)現(xiàn)不同路由之間的數(shù)據(jù)傳遞。