vue router
是vue.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獲取資料操...