本篇文章為大家介紹10個中關於路由vue-router的vuejs面試題。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
mvvm即Model-View-ViewModel,mvvm的設計原理是基於mvc的
MVVM是Model-View-ViewModel的縮寫,Model代表資料模型負責業務邏輯和數據封裝,View代表UI元件負責介面和顯示,ViewModel監聽模型資料的改變和控制視圖行為,處理使用者交互,簡單來說就是透過雙向資料綁定把View層和Model層連接起來。在MVVM架構下,View和Model沒有直接聯繫,而是透過ViewModel進行交互,我們只專注於業務邏輯,不需要手動操作DOM,不需要專注於View和Model的同步工作。 (學習影片分享:vue影片教學)
b988a8fd72e5e0e42afffd18f951b277
和975b587bf85a482ea10b0a28848e78a4
和7c9485ff8c3cba5ae9343ed63c2dc3f7
active-class是router-link終端屬性,用來做選取樣式的切換,當router-link標籤被點擊時將會套用這個樣式
{ path: '/details/:id' name: 'Details' components: Details }
訪問details目錄下的所有文件,如果details/a,details/b等,都會對應到Details元件上。
console.log(this.$route.params.id)
const router = new VueRouter({}) router.beforeEach((to, from, next) = { // to do somethings })
#to:Route,代表要進入的目標,它是一個路由物件。
from:Route,代表目前正要離開的路由,也是一個路由物件
next:Function,必須需要呼叫的方法,具體的執行效果則依賴next方法呼叫的參數
router.afterEach((to, from) = { // to do somethings })
後置鉤子並沒有next函數,也不會改變導航本身。
路由獨享鉤子
const router = new VueRouter({ routes: [ { path: '/home', component: Home, beforeEnter: (to, from, next) = { // to do somethings // 参数与全局守卫参数一样 } } ] })
const Home = { template: `<div</div`, beforeRouteEnter(to, from, next){ // 在渲染该组件的对应路由被 confirm 前调用 // 不能获取组件实例 ‘this’,因为当守卫执行前,组件实例还没被创建 }, beforeRouteUpdate(to, from, next){ // 在当前路由改变,但是该组件被复用时调用 // 例:对于一个动态参数的路径 /home/:id,在/home/1 和 /home/2 之间跳转的时候 // 由于会渲染同样的 Home 组件,因此组件实例会被复用,而这个钩子就会在这个情况下被调用。 // 可以访问组件实例 'this' }, beforeRouteLeave(to, from, next){ // 导航离开该组件的对应路由时调用 // 可以访问组件实例 'this' } }
const Home = { template: `<div</div`, beforeRouteEnter(to, from, next){ next( vm = { // 通过 'vm' 访问组件实例 }) } }
// 监听当前路由发生变化的时候执行 watch: { $route(to, from){ console.log(to.path) // 对路由变化做出响应 } }
beforeRouteUpdate(to, from, next){ // to do somethings }
// 传递参数 this.$router.push({ name: Home, params: { number: 1 , code: '999' } }) // 接收参数 const p = this.$route.params
// 传递参数 this.$router.push({ name: Home, query: { number: 1 , code: '999' } }) // 接收参数 const q = this.$route.query
window.onhashchange = function(event){ console.log(event.oldURL, event.newURL) let hash = location.hash.slice(1) }
const router = new VueRouter({ routes: [ { path: '/home', name: 'Home', component:() = import('../views/home') } ] })
更多编程相关知识,请访问:编程视频!!
以上是10個關於路由vue-router的vuejs面試題(含答案解析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!