摘要:關(guān)于個人開源項目的一些總結(jié)項目地址項目簡介此項目名叫。網(wǎng)站目前實現(xiàn)了登錄注冊日歷導(dǎo)入文件考勤導(dǎo)出缺勤名單等核心功能。這對于小型項目來說并沒有什么問題。編譯后的大小關(guān)于文件上傳與導(dǎo)出功能文件上傳導(dǎo)出可以說是此項目最關(guān)鍵的點了。
關(guān)于個人開源項目(vue app)的一些總結(jié) 項目地址
https://github.com/BYChoo/record
項目簡介此項目名叫:Record。是以Vue全家桶(vue,vue-router,vuex) + axios + express + mongodb技術(shù)棧開發(fā)的一個校園考勤網(wǎng)站,專門為老師定制的。網(wǎng)站目前實現(xiàn)了登錄注冊、日歷、導(dǎo)入文件(csv)、考勤、導(dǎo)出缺勤名單等核心功能。
關(guān)于項目結(jié)構(gòu)剛開始著手做此項目的時候,考慮到項目本身并不復(fù)雜,以視圖層來說撐死了也就六七個視圖層,我就把所有視圖層組件都放在components文件夾中,再在components文件夾中新建一個common文件夾來放置復(fù)用的組件。這對于小型項目來說并沒有什么問題(like this)。但是考慮到此站往后可能會部署上線,為了方便維護,我還是花了些時間對整個項目結(jié)構(gòu)進行了重整:
組件:新建一個views文件夾放置視圖層的組件,如果每個視圖層需要用到的子組件多的話,還可以以此視圖層為核心建一個文件夾,在此文件夾中再建一個childrens文件夾放置子組件
復(fù)用組件:項目中凡是復(fù)用到的子組件統(tǒng)一放在components中
http請求:新建一個APIs文件夾,以視圖層面為出發(fā)點創(chuàng)建每個視圖層需要用到的.js文件
全局方法:新建一個utils文件夾,放置方法.js文件
靜態(tài)資源:關(guān)于靜態(tài)資源,基于vue-cil構(gòu)建的項目中有兩個可以放置靜態(tài)資源的文件夾:static和src文件夾下的assets,放置在static文件夾中的靜態(tài)資源是不會被webpack打包的,而src文件夾下的靜態(tài)資源則會,該放哪還是酌情考慮吧
不知道大家有沒有這樣子寫過http請求
// 這條http請求是請求xxx this.$http.get("/api/demo") .then((res) => { // do something }) .catch((err) => { // throw err })
這樣寫請求是沒問題的,但如果這條http請求是需要多次被使用到呢?每次都要寫這樣一長串的代碼未免有點不優(yōu)雅了。針對這個問題,我決定采用把請求抽離出來,以每個視圖層為每個.js文件,把每個http請求封裝成函數(shù)然后導(dǎo)出,like this:
/** * index.js */ const getCaledarDay = function(params) { return new fetch({ // fetch是http請求實例 url: "/api/get_caledarDay", method: "get", params }) } export { getCaledarDay }; // 把函數(shù)導(dǎo)出 /** * index.vue */ ... import { getCaledarDay } from "api/index.js"; // 引入函數(shù) ...
這樣子寫的話就能有效的規(guī)避了http請求復(fù)用的問題了
關(guān)于狀態(tài)管理關(guān)于數(shù)據(jù)狀態(tài)管理一直是我開發(fā)Vue項目是都要考慮的問題,一般考慮是否要用vux的狀態(tài)管理(vuex)都離不開這個考慮點:跨組件之間數(shù)據(jù)共享問題。如果跨組件之間需要共享到的數(shù)據(jù)多且龐大,那么直接vuex一把梭就好了,不要再考慮了。但如果跨組件之間共享數(shù)據(jù)不多(酌情考慮多的概念),那么可以通過父子組件間和非父子組件的prop、$emit、$on等事件來傳值也是可以的。
vuex編譯后的大小25kb
關(guān)于csv文件上傳與導(dǎo)出功能csv文件上傳導(dǎo)出可以說是此項目最關(guān)鍵的點了。在開發(fā)過程csv文件上傳過程中,我發(fā)現(xiàn)了幾個可以解析csv文件的包:
node-csv
line-reader
fs
其中我采用了node-csv這個類庫來開發(fā),畢竟是node中專門來用解析csv文件的包。此外,我還用了formidable包來模擬解析前端上傳的form表單,如果不這樣做的話,前端post得csv文件會接受不到。有了formidable和node-csv開發(fā)起來就很美滋滋了。
導(dǎo)出csv文件部分,我采用了file-saver包來模擬csv文件的導(dǎo)出下載,怎么使用可以去github上翻閱,那里都寫的很詳細了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/112636.html
摘要:關(guān)于個人開源項目的一些總結(jié)項目地址項目簡介此項目名叫。網(wǎng)站目前實現(xiàn)了登錄注冊日歷導(dǎo)入文件考勤導(dǎo)出缺勤名單等核心功能。這對于小型項目來說并沒有什么問題。編譯后的大小關(guān)于文件上傳與導(dǎo)出功能文件上傳導(dǎo)出可以說是此項目最關(guān)鍵的點了。 關(guān)于個人開源項目(vue app)的一些總結(jié) 項目地址 https://github.com/BYChoo/record 項目簡介 此項目名叫:Record。是以...
摘要:官方資料微信公眾平臺注冊小程序。官網(wǎng)開發(fā)文檔社區(qū)開發(fā)工具部署微信小程序微信小程序本身不需要部署,在微信開發(fā)工具中直接上傳代碼就行。 為什么 學(xué)習(xí) Java 三年,目前已經(jīng)工作了2年,因為自學(xué),基礎(chǔ)差,所以打算年末總結(jié)一下常見的基礎(chǔ)知識和面試點; 也可以通過獨立做一個項目整合自己工作期間學(xué)習(xí)的知識,加深印象。 但是想著回家或是平時手機用的多,做一款A(yù)PP和小程序很方便查看。 項目展示 本...
摘要:官網(wǎng)地址聊天機器人插件開發(fā)實例教程一創(chuàng)建插件在系統(tǒng)技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。我會簡單基于的簡潔視頻播放器組件前端掘金使用和實現(xiàn)購物車場景前端掘金本文是上篇文章的序章,一直想有機會再次實踐下。 2道面試題:輸入URL按回車&HTTP2 - 掘金通過幾輪面試,我發(fā)現(xiàn)真正那種問答的技術(shù)面,寫一堆項目真不如去刷技術(shù)文章作用大,因此刷了一段時間的博客和掘金,整理下曾經(jīng)被...
閱讀 2969·2021-11-25 09:43
閱讀 3586·2021-11-24 11:13
閱讀 3354·2021-10-14 09:42
閱讀 2556·2021-09-23 11:53
閱讀 3605·2021-09-22 15:57
閱讀 3221·2021-09-02 09:54
閱讀 3499·2019-08-30 13:47
閱讀 1638·2019-08-29 16:55