vue router原始碼解析(一)

2021-09-12 23:11:24 字數 1793 閱讀 9940

vue routervue.js官方的路由管理器。它和vue.js的核心深度整合,讓構建單頁面應用變得易如反掌。

這裡主要通過閱讀vue-router的原始碼,對平時使用較多的一些特性以及功能,理解其背後實現的思路。

3.0.2

├── components  // 元件

│   ├── link.js // route-link的實現

│   └── view.js // route-view的實現

├── create-matcher.js // 建立匹配

├── create-route-map.js // 建立路由的對映

├── history // 操作瀏覽器記錄的一系列內容

│   ├── abstract.js // 非瀏覽器的history

│   ├── base.js // 基本的history

│   ├── hash.js // hash模式的history

│   └── html5.js // html5模式的history

├── index.js // 入口檔案

├── install.js // 外掛程式安裝的方法

└── util // 工具類庫

├── async.js // 非同步操作的工具庫

├── dom.js // dom相關的函式

├── location.js // 對location的處理

├── misc.js // 乙個工具方法

├── params.js // 處理引數

├── path.js // 處理路徑

├── push-state.js // 處理html模式的 pushstate

├── query.js //對query的處理

├── resolve-components.js //非同步載入元件

├── route.js // 路由

├── scroll.js //處理滾動

└── warn.js // 列印一些警告

我們知道 , 我們在使用 vue-router 的時候 ,主要有以下幾步:

// 1. 安裝 外掛程式

vue.use(vuerouter);

// 2. 建立router物件

const router = new vuerouter(]

});// 3. 掛載router

router

其中vuerouter物件,就在vue-router的入口檔案src/index.js

vuerouter原型上定義了一系列的函式,我們日常經常會使用到。主要有 :go 、 push 、 replace 、 back 、 forward

以及一些導航守護 :beforeeach 、beforeresolve 、aftereach等等

上面html中使用到的router-view,以及經常用到的router-link則存在src/components目錄下。

到這裡相信你對整個專案結構有乙個大概的認識 。 接下來,我們會根據以下幾點,一步步拆解vue-router

檢視系列文章

vue router原始碼解讀

vue router是vue全家桶中的一員。當初學習的時候,因為內容比較簡單,只是匆匆瀏覽了一下文件就開始對照api幹活了,對history mode的實現也僅僅是知道用到了h5的history的方法。這次其實是為了看看vue router是怎麼用roll up打包的,但下下來之後發現 量很少,說白...

vue router原始碼隨筆

外掛程式執行入口 if inbrowser window.vue 外掛程式給vue物件例項暴露了兩個屬性 object.defineproperty vue.prototype,router this.routerroot在beforecreate中定義。object.defineproperty ...

TFS原始碼解析一

tfs是乙個 分布式檔案系統,集群中主要涉及名字伺服器nameserver,以及資料伺服器dataserver,nameserver提供索引管理,dataserver提供資料儲存及管理。客戶端通過nameserver請求,獲取到dataserver中的資料路徑,然後通過dataserver獲取資料操...