本文采用vue2.0+vuex+localStorage+sass+webpack,實現一個本地存儲的記事本。兼容PC端和移動端。在線預覽地址:DEMOvue
支持事件狀態切換node
本項目是使用vue-cli腳手架生成的項目,項目代碼能夠到個人github上clone下來。clone下來以後可進入文件目錄webpack
git clone https://github.com/lin-xin/notepad.git // 把模板下載到本地 cd notepad // 進入模板目錄 npm install // 安裝項目依賴,等待安裝完成以後 npm run dev // 便可在本地開啓 http://localhost:8080 訪問該項目 // 若是 node-sass 安裝失敗,可以使用 cnpm 安裝 npm install cnpm -g --registry=https://registry.npm.taobao.org cnpm -v // 查看cnpm版本號確認安裝成功 cnpm install node-sass -D //安裝成功後再看看是否能夠正確運行了
難點:點擊摺疊面板title,要動畫實現sliderUp和sliderDown,可是div高度auto,使用transition: height .3s無效。git
解決方法:點擊時候獲取div高度值,賦值給style.height,而後再改變高度爲0,這樣transition纔會生效。github
難點:在不一樣的狀態間切換,實時地把事件在不一樣狀態列表中顯示出來web
解決方法:利用vuex進行狀態管理,把全部事件和狀態存儲在store對象中,在組件中經過計算屬性得到事件,所以就有了實時性。
關於vuex在該項目中更詳細的應用可查看文章:Vuex 模塊化實現待辦事項的狀態管理vue-router
知識點:localStorage是HTML5提供的一種在客戶端存儲數據的新方法,沒有時間限制,次日、第二週或下一年以後,數據依然可用。vuex
用法:vue-cli
1)存儲數據:localStorage.setItem(item, value) 2)獲取數據:localStorage.getItem(item) 3)移除數據:localStorage.removeItem(item)
知識點:組件實例的做用域是孤立的。這意味着不能而且不該該在子組件的模板內直接引用父組件的數據。npm
1)父組件可使用 props 把數據傳給子組件。 2)子組件可使用 $emit 觸發父組件的自定義事件。
功能描述:可根據 類型 和 關鍵詞 進行篩選
知識點:在返回全部事件的計算屬性上,使用過濾器( filter ),進行對 type 和 content 的篩選,返回符合條件的事件。
功能描述:經過點擊選中的顏色,改變整個記事本的主題風格,並永久保存。
知識點:使用vuex管理主題狀態,並進行模塊化管理,用localStorage永久存儲選中的主題顏色。
雖然只是作了個小小的記事本,可是我感受收穫仍是很大的,不少知識點掌握得更加的牢固。這個記事本只作了一個頁面,就沒有用vue-router,路由也是vue裏很強大的功能。 作這個記事本的初衷,是由於在工做中,我都會把最近要作的事情給記在本子上,完成以後就會打鉤,因此想把這個給放到電腦上去實現。
01-25:添加篩選功能02-07:修復issues 取消事件的bug #102-28:添加下載數據到notepad.txt的功能03-13:添加切換主題顏色功能