vue學習筆記1

2021-09-25 15:35:56 字數 1727 閱讀 5206

一.vue原始碼目錄結構的含義:

src下面的

compiler: 編譯

core:

components:  元件,包含 keep-alive.js

global-api:     全域性api,包括extend.js,   mixin.js         

instance:例項,包含渲染的輔助函式:events.js,  init.js,   lifecycle.js

observer: 和響應資料相關,是個核心概念,

util: 工具方法

vdom: vdom相關**

platforms:

web:  平時開發的瀏覽器的程式

weex: 類似reactnative的跨端的應用

server: 所有和服務端渲染相關的

sfc: 簡單的直譯器

shared: 是一些輔助的方法,例如常量,工具方法

二.1.scripts目錄下的builds是構建檔案,config.js最後一行

exports.getallbuilds = () => object.keys(builds).map(genconfig)
獲取builds的key值,往上找到builds,發現裡面有很多resolve函式,往上找到resolve函式的定義,而resolve裡面用到了aliases,然後找到aliases的定義,繼續找到alias.js檔案,發現module.exports中有很多resolve方法,結合該檔案裡的resolve函式分析,發現他們定位到的是vue下面src裡面的platforms目錄裡面web目錄裡面的

entry-runtime-with-compiler等檔案
即vue/src/platforms/web/entry-runtime-with-compiler

實際上,alias就是提供了乙個到真實檔案位址的對映

對於scripts/config.js裡面builds,裡面的format有cjs,和es兩種格式,分別對應到vue/dist裡面的vue.runtime.common.dev.js,

vue.runtime.esm.js檔案,其中cjs格式對應的檔案裡面最後一行是

module.exports = vue;
而es格式對應檔案的最後一行是

export default vue;
也就是可以通過不同的format構建出不同的版本

format除了上面兩種格式,還有umd的格式,

結合vue/dist/vue.js的第乙個函式可以分析出,其實format對應早期的common.js,amd

匯出不同格式的js

2.banner:生成注釋,例如vue/dist/vue.common.js裡面的注釋

vue.common.js裡面,首先生成builds陣列,然後if(process.ar**[2])判斷後面為--web 還是--weex,從而過濾掉不需要編譯的檔案,留下需要的編譯的檔案,然後對於編譯的build方法,裡面定義了next方法,該方法中呼叫了buildentry(),

buildentry中呼叫rollup編譯config,config編譯完就拿到bundle,然後通過generate產生output,判斷code是否需要壓縮,然後

呼叫write函式的fs.write方法,生成在dist目錄下

vue學習筆記(1)

1 vue讀音,同view.2 vue是什麼?乙個mvvm框架 庫 特點 比較容易上手 小巧 mvvm,可以模擬mvc,mvp,mv mvx 3 官網 4 vue和angular區別?vue 簡單 易學 指令以 v 開頭,如 v 一片html 配合上json,再new出來vue例項 個人維護專案 適...

Vue學習筆記(1)安裝vue

npm安裝vue 命令列輸入 node v 檢視node版本 驗證是否安裝成功 映象 可選 cnpm registry 安裝過 映象後就可以在命令列輸入cnpm代替npmle 安裝cli腳手架構建工具 命令列輸入 cnpm npm install g vue cli 安裝 初始化乙個專案 vue i...

vue學習筆記(一)vue基本語法1

1 該指令後面不需要跟任何表示式,可以直接使用 2 該指令表示元素和元件只渲染一次,即使元件資料改變了展示出來的頁面中也不會改變 1 有時候,從伺服器中請求的資料是乙個html 此時如果直接用mustache語法直接包裹的話輸出的是 本身。如果希望解析html 的話就需要v html指令 2 使用方...