vue-router相關面試題


Vue-router

Vue-router的跳轉原理:

vue-router實現單頁面路由跳轉,提供了三種方式: hash方式、history模式、abstract模式,根據mode參數來決定采用哪一種方式

● hash: 使用 URL hash 值來作路由。默認模式。
● history: 依賴 HTML5 History API 和服務器配置。查看 HTML5 History 模式。
● abstract: 支持所有 JavaScript 運行環境,如 Node.js 服務器端

路由之間的跳轉:

聲明式(標簽跳轉):<router-view>標簽用於展示路由組件,DOM節點中使用v-link進行跳轉,或使用router-link標簽

編程式(js跳轉)

怎么定義vue-router的動態路由以及如何獲取傳過來的動態參數?

router目錄下的index.js文件中,對path屬性加上/:id

使用router對象的params id

Vue中,如何用watch去監聽router變化

當路由發生變化的時候,在watch中寫具體的業務邏輯

let vm = new Vue({

el:"#app",

data:{},

router,

watch:{

$router(to,from){

console.log(to.path);

}

}

})

 

vue-router有哪幾種導航鈎子?以及它的參數?

三種,一是全局導航鈎子:router.beforeEach(to,from,next),作用:跳轉前進行判斷攔截。

第二種:組件內的鈎子

第三種:單獨路由獨享組件

beforeRouteEnter、afterEnter、beforeRouterUpdate、beforeRouteLeave

參數:有to(去的那個路由)、from(離開的路由)、next(一定要用這個函數才能去到下一個路由,如果不用就攔截)最常用就這幾種

Vue的路由實現: hash模式和history模式(Vue的兩種狀態)

  1. hash——即地址欄URL的#符號,特點: 通過window.onhashchange的監聽, 匹配不同的url路徑,進行解析,加載不同的組件,然后動態的渲染出區域內的html內容,不會被包含在HTTP請求中,對后端完全沒有影響

HashHistory有兩個方法:

HashHistory.push()是將路由添加到瀏覽器訪問歷史的棧頂

hashHistory.replace( ) 是替換掉當前棧頂的路由

因為hash發生變化的url都會被瀏覽器歷史訪問棧記錄下來,這樣一來,盡管瀏覽器沒有請求服務器,但是頁面狀態和url一一關聯起來的,瀏覽器還是可以進行前進后退的

 

  1. history —— 利用了HTML5 History Interface中新增的pushState()和replaceState()方法。這兩個方式應用於瀏覽器的歷史記錄棧,提供了對歷史記錄的修改功能。history模式不怕頁面的前進和后腿,就怕刷新,當刷新時,如果服務器沒有相應的響應或者資源,就會刷出404,而hash模式不會
  2. $route從當前router跳轉對象里面可以獲取name、path、query、params等(<router-link>傳的參數有this.$route.query或者this.$route.params接收)
  3. $router為VueRouter實例。想要導航到不同URL,則使用$router.push方式,返回上一個history也是使用$router.go/$router.back方法

$router和$route的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM