一個前端基于Vue2.0全家桶,后端基于Express+Mongodb的前后端分離博客。前端界面使用了flexbox+rem布局,后端界面使用了element ui。本項目可以作為一個前端進階項目,從前端flexbox布局到前端框架的使用,再到后端以及數(shù)據(jù)庫,是一個打通前后端流程的一個項目。由于最近剛換了域名,正在備案中,所以目前沒有線上演示,不過可以看一下下面的動態(tài)圖特效。
特點
- 支持 MarkDown 編輯
- 支持代碼高亮
- 支持移動端瀏覽
功能展示展示
PC前臺博客演示
image
移動端前臺演示
image
后臺管理演示
image
若圖片無法顯示則點擊這里:pc前端功能展示 移動前端功能展示pc后端功能展示
前端工具
- Vue2.0
- Vue-Router
- Vuex
- axios
- element ui
前端布局采用flexbox+rem布局,關(guān)于flexbox請閱讀一個完整的Flexbox指南以及這篇最新的理解Flexbox:你需要知道的一切
本項目還采用了手機端適配,關(guān)于移動端的學習資料請按照我下面羅列的資料按順序仔細閱讀。
后端工具
- express
- mongodb(mongolass)
后端的管理界面我直接使用了element ui這個基于vue的組件庫,很強大.
目錄結(jié)構(gòu)
│ .babelrc
│ .editorconfig
│ .eslintignore
│ .eslintrc.js
│ .gitignore
│ index.html
│ package.json
│ README.md
│
├─build
│ build.js
│ check-versions.js
│ dev-client.js
│ dev-server.js
│ utils.js
│ webpack.base.conf.js
│ webpack.dev.conf.js
│ webpack.prod.conf.js
│
├─config
│ dev.env.js
│ index.js
│ prod.env.js
│ test.env.js
│
├─server 后端文件夾
│ │ .env
│ │ app.js 后端入口
│ │
│ ├─api
│ │ index.js 后端api
│ │
│ ├─lib
│ │ mongo.js 數(shù)據(jù)庫
│ │
│ ├─middleware
│ │ checkToken.js
│ │ createToken.js
│ │
│ └─routes 后端路由
│ admin.js
│ article.js
│ classify.js
│ index.js
│ login.js
│ reg.js
│
├─src 前端文件夾
│ │ App.vue
│ │ main.js 前端入口
│ │
│ ├─api 前端api
│ │ index.js
│ │
│ ├─assets
│ │ ├─css
│ │ │ commen.css
│ │ │ default.css
│ │ │ default0.css
│ │ │ highlight.css
│ │ │
│ │ ├─img
│ │ │ bg.jpg
│ │ │ bgm.jpg
│ │ │
│ │ └─js
│ │ commen.js
│ │ highlight.pack.js
│ │ hljs.js
│ │
│ ├─components
│ │ │ NotFound.vue
│ │ │
│ │ ├─backEnd 后端界面
│ │ │ Admin.vue
│ │ │ ArticleCreate.vue
│ │ │ ArticleEdit.vue
│ │ │ ArticleList.vue
│ │ │ ClassList.vue
│ │ │ Login.vue
│ │ │ Reg.vue
│ │ │
│ │ └─fronted 前端界面
│ │ About.vue
│ │ Article.vue
│ │ Front.vue
│ │ Home.vue
│ │ Tags.vue
│ │ vfooter.vue
│ │ vheader.vue
│ │
│ ├─routes 前端路由vue-router
│ │ index.js
│ │ routes.js
│ │
│ └─store 前端vuex
│ │ actions.js
│ │ index.js
│ │ MsgAlert.js
│ │ mutations.js
│ │ states.js
│ │ types.js
Step
環(huán)境
克隆遠程庫
git clone https://github.com/elva2596/vueBlog.git
安裝前端依賴
npm install
全局安裝supervisor
npm install -g supervisor
啟動mongodb服務器
在你安裝的數(shù)據(jù)庫文件中的bin目錄中啟動
mongod
安裝后端依賴
進入到server文件夾下,安裝后端依賴:npm install
啟動后端服務器
npm start
啟動前端項目
回到項目根目錄下運行:npm run dev
生成發(fā)布
npm run build
Notice
- 前后端啟動時的路徑不一樣,前端在項目根目錄,后端在servser根目錄,其實可以把后端分離出來。
- 因為是前后端分離項目,必然涉及到跨域,使用webpack的proxyTable,進入到config文件夾的index.js,將proxyTable配置成:
proxyTable: { '/api':{ target:'http://localhost:3009/api', changeOrigin:true, pathRewrite:{ '^/api':'' } } },
- 推薦Robomongo作為數(shù)據(jù)庫的可視化管理工具
- 推薦Postman作為驗證restful API的工具,請參考這篇文章
- 這里的主頁界面有個小小的bug,主頁只顯示每篇具體文章的摘要,在這里我取了一個巧,就是將從后端返回的數(shù)據(jù)經(jīng)過markdown解析以后,用了一個正則把第一個p標簽以及其中的內(nèi)容給提取出來渲染到頁面。因此后端在添加文章的時候必須在編寫每篇文章的開頭寫一段話。因為畢竟這個博客只是一個第一版,后面我會把這個問題解決掉。
Todo
- 移動端優(yōu)化,300ms
- 添加評論功能
- 密碼修改功能
- 用戶權(quán)限分類
License
MIT