最近熬了不少個夜晚, 踩坑無數, 終於寫出了用VuePress驅動的主題.前端
只需體驗三分鐘,你就會跟我同樣,愛上這款主題.
vuepress-theme-indigo-material, 已經發布到npm, 請客官享用~~vue
vuepress-theme-indigo-material 的原主題是hexo-theme-indigo, github 的 star 數高達2042, fork 的有451個, 它在靜態博客網站中的應用到處可見.在這裏首先感謝原做者.webpack
然而它的定位是僅支持 IE10+ 等現代瀏覽器。既然不須要支持老版本瀏覽器, 在前端發展迅猛的今天, 已經有許多技術可以讓網址更快, 因此我用VuePress來重寫了它. 其實 indigo 的原做者已經在用 vuepress 重寫了, 可是項目一直沒有進展, 因此我接過了這個任務, 最後重寫的效果是挺滿意的.git
能夠看看下面,本主題在個人有 51 篇博客筆記下, 部署在 github page, 在手機 4G 網絡下的加載速度gif 圖,網頁加載速度很是快,更快的是,網頁加載完成後,此後每一個頁面的打開速度,都是彷彿在點擊本地文件.github
具體感覺能夠點擊個人博客網站來親身感覺, 部署在 github page 下, 國內請能夠點擊碼雲的 page 地址web
正如VuePress文檔所說:shell
每個由 VuePress 生成的頁面都帶有預渲染好的 HTML,也所以具備很是好的加載性能和搜索引擎優化(SEO)。
用 Lighthouse 來測試網站中, SEO 一直都是100 ,打包後的大小也比起原主題小了許多.npm
加載快的緣由還在因而先在本地編譯中把數據寫進相應的 js 文件,json
fs.writeFile( `${dataPath}/search.js`, `export default ${JSON.stringify(search, null, 2)};`, error => { if (error) return console.log('寫入搜索search文件失敗,緣由是' + error.message); console.log('寫入搜索search文件成功'); } );
而後在網頁被打開時, 在 vue.js 的生命週期 created 中, 結合 webpack 的 import()語法導入相應存放數據的 js 文件.後端
created() { import(/* webpackChunkName: "search" */ "Data/search.js").then(search => { this.search = search.default; }); },
webpack 會把代碼分割,按需去利用 jsonp 去請求 js 文件, 這樣咱們就能在本地編譯時整理所需的數據, 而後模擬了 web APP 開發的流程, 頁面先到達呈現, 數據後請求.而不用怕咱們所須要的數據和網頁一塊兒一次發過來,讓網頁加載速度緩慢
最後利用 vue 強大的 MVVM, 由於數據都有了, 此後的頁面幾乎是當即渲染, 即點即開.
這是我探索出來對沒有後端的靜態網站的一種很好的性能優化.
--- title: 【讀書筆記】《JavaScript權威指南》第7章數組 date: 2018-11-08 04:10:03 tags: [讀書筆記, 《JavaScript權威指南》] ---
因爲博客面向的羣體比較都是技術人員, 因此本主題只在最新版的谷歌瀏覽器和火狐瀏覽器測試無誤
vuepress 默認有編譯一些對老版本瀏覽器的兼容, 具體控制請看它官網配置
我寫了很詳細的文檔, 趕快去體驗一下vuepress-theme-indigo-material吧, 若是以爲不錯, 您能給我一個star嗎?
github地址:https://github.com/zhhlwd/vue...