今天天津最新通告南寧seo優(yōu)化
13. assets 和 static 的區(qū)別
相同點: assets 和 static 兩個都是存放靜態(tài)資源文件。項目中所 需要的資源文件圖片,字體圖標,樣式文件等都可以放在這兩個文件 下,這是相同點
不相同點:assets 中存放的靜態(tài)資源文件在項目打包時,也就是運 行 npm run build 時會將 assets 中放置的靜態(tài)資源文件進行打包 上傳,所謂打包簡單點可以理解為壓縮體積,代碼格式化。而壓縮后 的靜態(tài)資源文件最終也都會放置在 static 文件中跟著 index.html 一同上傳至服務器。static 中放置的靜態(tài)資源文件就不會要走打包 壓縮格式化等流程,而是直接進入打包好的目錄,直接上傳至服務器。
因為避免了壓縮直接進行上傳,在打包時會提高一定的效率,但是 static 中的資源文件由于沒有進行壓縮等操作,所以文件的體積也 就相對于 assets 中打包后的文件提交較大點。在服務器中就會占據(jù) 更大的空間。
建議: 將項目中 template 需要的樣式文件 js 文件等都可以放置在 assets 中,走打包這一流程。減少體積。而項目中引入的第三方的 資源文件如 iconfoont.css 等文件可以放置在 static 中,因為這 些引入的第三方文件已經(jīng)經(jīng)過處理,不再需要處理,直接上傳。
14. delete 和 Vue.delete 刪除數(shù)組的區(qū)別
delete 只是被刪除的元素變成了 empty/undefined 其他的元素的 鍵值還是不變。
Vue.delete 直接刪除了數(shù)組 改變了數(shù)組的鍵值。
15. Vue 模版編譯原理
vue 中的模板 template 無法被瀏覽器解析并渲染,因為這不屬于瀏 覽器的標準,不是正確的 HTML 語法,所有需要將 template 轉(zhuǎn)化成一 個 JavaScript 函數(shù),這樣瀏覽器就可以執(zhí)行這一個函數(shù)并渲染出對 應的 HTML 元素,就可以讓視圖跑起來了,這一個轉(zhuǎn)化的過程,就成 為模板編譯。模板編譯又分三個階段,解析 parse,優(yōu)化 optimize,生成 generate,最終生成可執(zhí)行函數(shù) render。
解析階段:使用大量的正則表達式對 template 字符串進行解析,將 標簽、指令、屬性等轉(zhuǎn)化為抽象語法樹 AST。
優(yōu)化階段:遍歷 AST,找到其中的一些靜態(tài)節(jié)點并進行標記,方便在 頁面重渲染的時候進行 diff 比較時,直接跳過這一些靜態(tài)節(jié)點,優(yōu) 化 runtime 的性能。
生成階段:將最終的 AST 轉(zhuǎn)化為 render 函數(shù)字符串。
16. vue 初始化頁面閃動問題
使用 vue 開發(fā)時,在 vue 初始化之前,由于 div 是不歸 vue 管的,所 以我們寫的代碼在還沒有解析的情況下會容易出現(xiàn)花屏現(xiàn)象,看到類 似于{{message}}的字樣,雖然一般情況下這個時間很短暫,但是還 是有必要讓解決這個問題的。
首先:在 css 里加上以下代碼:
如 果 沒 有 徹 底 解 決 問 題 , 則 在 根 元 素 加 上 style="display:
none;" :style="{display: 'block'}"