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