實現手寫簡單VueRouter原始碼

2022-02-15 06:47:38 字數 801 閱讀 5989

必須有乙個install方法,供vue.use呼叫

實現hash變化,響應式資料自動更新

let vue;

class vuerouter;//快取route 和 path 的對映關係

this.$options.routes.foreach(route=>)

const initial = window.location.hash.slice(1) || '/';

//實現current 響應式,發生變化更新所有引用current的渲染

vue.util.definereactive(this,'current',initial)

//監聽hash變化

window.addeventlistener('hashchange',()=>)

//每次重新進入頁面時執行

window.addeventlistener('load',()=>)

} }vuerouter.install = function(_vue)}})

vue.component('router-link',

},render(h)},this.$slots.default)}})

vue.component('router-view', = this.$router;

let component = routemap[current]?routemap[current].component:null;

return h(component)}})

} export default vuerouter

vue router簡單實現

1.構造vuerouter類 constructor options 的形式 this routesmap this createmap this routes 初始化狀態 this history newhistoryroute 初始化路由設定 this init 2.將routes格式轉化為的形...

手寫vue router原始碼 實現屬於自己的路由

前端路由的兩種模式 hash模式 url中 後面的內容作為路徑位址 監聽hashchange事件 根據當前路由位址找到對應的元件重新渲染 history模式 通過history.pushstate 方法改變位址列 監聽popstate 事件 根據當前路由位址找到對應元件重新渲染 新建乙個沒有vue ...

vue Router實現原理

一 前端路由概念 通過改變 url,在不重新請求頁面的情況下,更新頁面檢視。二 vue router兩種模式 更新檢視但不重新請求頁面,是前端路由原理的核心之一,目前在瀏覽器環境中這一功能的實現主要有2種方式 hash 預設值,利用 url 中的hash history 利用url中的路徑 home...