根據以往經驗 我們先看看snabbdom文件:snabbdom裡有個h 返回了個函式vnode
**的結尾返回了乙個vnode函式 其中 sel data children text 都是vue函式裡比較重要的,然後看看vnode.ts裡的**
vnode裡 返回了 這麼乙個資料 其中elm 就是vnode對應的dom
由上面我們還得知 與vnode有關聯的 還有乙個patch **裡匯出了乙個init函式 ;而init函式返回了乙個叫patch的函式(snabbdom.ts)
而patch函式裡 的第乙個if判斷式的意思是:判斷文件裡的 patch(container(dom元素),vnode) 裡的第乙個引數是不是vnode
如果不是建立乙個空的vnode,關聯到這個dom元素 emptynodeat函式裡建立乙個空的vnode 和elm(對應的dom)做乙個繫結
而第二個if判斷 判斷了新的vnode 和舊的vnode是不是都相等(key和sel都相等)函式samevnode裡的結構是這樣的:
而判斷裡 還有個及其重要的函式 patchvnode 就是用來做 vnode的對比來看看patchvnode 裡的結構:
然後就是updatechildren:
由於有大量注釋,所以就不做多解釋了~反正是給我自己看的
~~~~~~~~
記一次原始碼分析
首先分析一段很短的 include include using namespace std vector getdata return std move v returnv intmain 這段 是錯的,裡面出現了乙個很容易犯得bug 如果函式中有建立本地物件並需要返回時,只能返回物件,不能返回指標...
記一次閱讀灰度發布原始碼的感想
最早接觸灰度發布是聽到公司大佬提到的重大上線必須灰度。當時 灰度 這個專業詞語抓住了我的眼球。於是我也開始了對灰度發布的 起初的概念只限於部分讓部分機器上線最新功能,後面就更深化為使用者選取 資料反饋 回滾策略關鍵的三部。直到昨天無意間看到專案中灰度的部分原始碼,又瞬間開始深入研究起來。灰度要實現的...
記一次koa2原始碼的探索經歷
1.本文解決兩個問題,koa啟動的時候需要初始化哪些東西和做了哪些事情?2.一次完整的http請求,對於koa來說是怎麼處理的?3.我們先來回顧一下,我們在使用koa時所使用的一些 const koa require koa 載入koa框架 載入路由 監聽埠號,進行呼叫 logger.info we...