1. 程式人生 > 其它 >認識 Vue Router 路由

認識 Vue Router 路由

vue-router

vue3專案中如何配置路由

下載vue-router,在路由檔案中引入相關依賴

建立路由資訊物件陣列

建立路由管理器物件並對外丟擲

main.js使用use(router)方法,將路由管理器物件與當前vue專案相關聯

在專案中設定路由導航router-link與路由出口router-view

常見面試題:route、routes、router的區別

route:一組路由資訊物件

{path:'/foo',component:Foo}

routes:路由資訊物件陣列

const routes =[                                                                                             {path:'/foo',component:Foo},                                                             {path:'/bar',component:Bar},                                                             {path:'/user',component:User}                  

                ]

router:路由管理物件

 const router=createRouter({   })

動態路由

定義:我們經常需要把某種模式匹配到的所有路由,全部對映到同個元件。

例如:我們有一個User元件,對於所有ID各不相同的使用者,都要使用這個元件渲染

一個【路徑引數】 使用冒號:標記;

//動態路由的設定

 {path:'/user/:id/:name/:age',component:user}

 <router-link to="/user/1/tom/18">user-1</router-link>                                                  <router-link to="/user/2/bob/20">user-2</router-link>

可以在一個路由中設定多段【路徑引數】

動態路由的傳參

1.params傳參

定義動態路由:

{path: '/user/:id/:name/:age',component:User}

傳輸引數:

<router-link to="/user/1/tom/18>user-1</router-link>

接收引數:

<p>使用者id--{{$route.params.id}}</p>                

   <p>使用者名稱稱--{{$route.params.name}}</p>                                                                        <p>使用者年齡--{{$route.params.age}}</p>    

2.props傳參

值為布林值的形式

定義動態路由:

{path:'/user/:id/:name/:age',component:User,props:true}

傳輸引數:

<router-link to="/user/1/tom/18">user-1    </router-link>

      <router-link to="/user/2/jack/28">user-2    </router-link>

      <router-link to="/user/3/mary/18">user-3    </router-link>

接收引數:

props:['id','name','age']

值為函式的形式

定義動態路由:

{path:'/user',name:'user',component:User,props:function(route){return{id:route.params.id,name:route.params.name,age:route.params.age}}}

傳輸引數:

<router-link v-bind:to="{name:'user',params:{id:4,name:'test',age:25}}">user-4    </router-link>

接收引數:

props:['id','name','age']

動態路由切換時的特點

動態路由當路由發生切換時,並不會重新渲染路由元件,而會使用已經渲染過的路由元件(只是會修改路由引數值)。這樣增加了程式的高效及時性;另一方面,元件的生命週期鉤子回撥函式將不會再次呼叫。

狀態管理庫vuex

vuex是一個專門為vue.js應用程式開發的狀態管理庫。狀態就是指元件之間共享的資料

vue專案中配置狀態管理庫vuex的流程

1.下載並引入vuex相關內容

 

2.建立狀態管理庫物件store

 

3.對外丟擲store物件

 

4.在main.js中將store與當前專案相關聯

 

store狀態管理庫物件重要組成部分

state:元件之間共享的資料集合

元件中獲取方法

1.直接獲取 this.$store.state.xxx;

vue3合成API------setup()

Vue3最重要的新特性之一

作用:之前vue物件規定了我們必須把某一類資料放到某一個結構中,這樣在一定程度上對我們的程式碼進行了強制的分割。而在vue3 中我們引入了setup()合成API語法,他可以將某資料關聯的內容都整合到一個部分,即使setup()中的內容越來越多,也會圍繞著大而不亂的形式開發專案。

setup特點

1、setup()結構中定義的變數,函式都需要return之後才可以在模板中使用, 2.setup()是處於created生命週期之前的函式,也就是說data,methods中的資料是無法訪問到的,setup()結構中的this指向undefined

ref :在setup中只能包裝字串或數字形式的資料(值),使其變為響應式資料 reactive: 在setup中包裝物件,陣列形式的資料(物件/陣列),使其變成響應式資料 refs: 可以直接在html模板中使用物件的屬性名當變數,不需要用 . 訪問

setup()結構中如何使用生命週期函式

 

元件之間的資料通訊

父子元件之間資料通訊

第一種:父-->子 props傳遞資料;子-->父 觸發自定義事件的形式

 

第二種:provide....inject結構 父元件provide丟擲資料,子元件inject接收資料

非父子元件之間資料通訊

第一種:事件匯流排Bus(空vue物件)

第二種:狀態管理庫vuex