打卡node_modules 裏面vue目錄:
vue的源碼都在src目錄下,其目錄結構如下:
compiler
compiler 目錄包含vue.js所有編譯相關的代碼。它包括把模板解析成ast語法樹優化,代碼生成等功能。
編譯的工作可以在構建時做(藉助webpack、vue-loader等輔助插件);也可以在運行時做,使用包含構建功能的vue.js。顯然,編譯是一項耗性能的工作,所以更推薦前者-----離線編譯。
core
core目錄包含了vue.js的核心代碼,包括內置組件、全局API封裝,vue實例化、觀察者、虛擬DOM、工具函數等
這裏的代碼可謂是vue.js 的靈魂,也是我們之後需要重點分析的地方。
platform
vue.js 是一個誇平臺的MVVM框架,他可以跑在web上,也可以配合week跑在native客戶端
platform 是vue.js的入口,2個目錄代表2個主要入口,分別打包成運行在web和week上的vue.js。
我們會重點分析web入口打包後的vue.js,對於week入口打包的vue.js,感興趣的同學可以自行研究。
server
vue.js 2.0 支持了服務端渲染,所有服務端渲染相關的邏輯都在這個目錄下。注意:這部分代碼是跑在服務端的node.js,不要和跑在瀏覽器的vue.js混爲一談。
服務端渲染主要的工作是把組件渲染爲服務器端HTML字符串,將它們直接發送到瀏覽器,最後靜態標記“”混合”爲客戶端上完全交互的應用程序。
sfc
通常