7 天開發後臺系統技術小結
在確定了後臺系統的詳細規劃和整體功能以後,花費時間更多的其實是對技術細節的打磨。本主題借鑑我開發個人網站 魚立說 的經驗,整理了在開發後臺系統過程可能會遇到的各種技術要點。
本文來源:魚立說。本文連結:https://www.yulisay.com/d/endskills.html,支援微信瀏覽器開啟。
更多精彩文章,請移步 魚立說個人網站 翻看。歡迎欣賞,吐槽不足之處。
涉及到的程式碼已經整理到 https://github.com/yulis-say/web-full-stack 中的 end-skills 目錄,若覺得有用,請分享並 star 。
1 後臺開發小結
下面對後臺系統的開發技術要點依次進行概括,包括必要的說明和資源引導。
1.1 後臺系統模板
搭建後臺系統,為了省時省力,可以選用一些流行的後臺系統模板。關於這部分,可以閱讀本站整理的《流行的後臺管理系統模板》一文。
考慮到技術的流行性和後臺功能的完善,本站使用了基於 Vue.js 和 Element-UI 實現的 vue-admin-template 作為參考,進行了後臺系統的搭建和二次開發。
參考 vue-element-admin 後臺系統模板,最終的後臺系統效果將如圖所示:
1.2 vue-admin-template 使用技巧
配置代理請求,解決跨域問題。做如下修改:
修改 .env.development 檔案,VUE_APP_BASE_API 表示某個字首: VUE_APP_BASE_API = '/api' 修改 vue.config.js 檔案,當遇到以 VUE_APP_BASE_API 開頭的請求時,就會把 target 欄位加上: devServer: { …… proxy: { [process.env.VUE_APP_BASE_API]: { target: 'http://api.com',// 你自己的域名 secure: false,// 配置 https 介面 changeOrigin: true,// 是否跨域 pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '/api'// 替換配置中的字首 } } } }
修復 Markdown 排版樣式。使用 tui.editor 作為新編輯器,請參考 https://github.com/PanJiaChen/vue-element-admin/commit/3057489cc66e17b97a77512c1e3621b96c37a4ba 修復此 bug。具體修改:
1. 把 package.json 檔案中的 "tui-editor" 依賴替換成 "@toast-ui/editor"; 2. 使用參考中的 src/components/MarkdownEditor/index.vue 檔案內容替代你本地的檔案內容。
去除瀏覽器控制檯輸出的 async-validator 驗證警告:
將 node_modules/async-validator 目錄中的 es/util.js、lib/util.js 兩個檔案裡的 console.warn(type, errors); 註釋掉
在編譯原始碼的時候,Eslint 校驗失敗的時候會進行一些提示:
Strings must use singlequote. 必須使用單引號,不能使用雙引號。 Trailing spaces not allowed. 需要刪除多餘的空格。 Attribute ':sizeOpts' must be hyphenated. 屬性有大寫,需要使用"-"取代。
1.3 Vue.js 使用技巧
$nextTick() 會在下次 DOM 更新迴圈結束之後執行延遲迴調。在修改資料之後立即使用這個方法,可以獲取更新後的 DOM。
handler() 會在被偵聽物件的 property 改變時被呼叫,不論其被巢狀多深。
computed 用來監控自定義變數,可以在頁面上進行雙向資料繫結展示出結果或作其他處理,比較適合對多個變數或者物件進行處理後返回一個結果值。
報錯:Critical dependency: the request of a dependency is an expression. 解決:將 babel-eslint 更換至穩定版本,比如由 "^10.0.3" 更換至 7.2.3。
1.4 Element-UI 使用技巧
el-upload 上傳元件,可以使用 http-request 自定義上傳方法。如下程式碼做了簡略處理:
<el-upload ref="upload" accept=".jpg, .jpeg, .png, .gif" :http-request="uploadFile" > uploadFile(params) { return new Promise((resolve, reject) => { const formData = new FormData() formData.append('file', file) getImage(formData).then(response => { this.tempUrl = response.data resolve(true) }).catch(() => { reject(false) }) }) }
調整 $confirm 提示框按鈕位置。$confirm 提示框的按鈕預設順序是取消、確定,修改程式碼進行調整:
# CSS 調整 .el-btn-custom-cancel { float: right; margin-left: 10px; } # 設定 $confirm 按鈕樣式 this.$confirm( …… cancelButtonClass: 'btn-custom-cancel', …… }
報錯:Uncaught (in promise) cancel. 因為 this.$msgbox 沒有使用 .catch(),無法捕獲到取消操作。可以這麼寫:
this.$msgbox({ …… }).catch(error => error)
2 更多有用的網站
Vue.js :一套用於構建使用者介面的漸進式 JavaScript 框架,遵循 MIT 開源協議。網址:https://cn.vuejs.org/。
Element :網站快速成型工具,一套為開發者、設計師和產品經理準備的基於 Vue 2.0 的桌面端元件庫。網址:https://element.eleme.cn。
npm :JavaScript 世界的包管理工具,並且是 Node.js 平臺的預設包管理工具。通過 npm 可以安裝、共享、分發程式碼,管理專案依賴關係。網址:https://www.npmjs.com/。
Webpack :一個靜態模組打包器(module bundler),會遞迴地構建一個依賴關係圖(dependency graph),其中包含應用程式需要的每個模組,然後將所有這些模組打包成一個或多個 bundle。網址:https://www.webpackjs.com。
axios :一個基於 promise 的 HTTP 庫,可以用在瀏覽器和 Node.js 中。網址:http://www.axios-js.com/。
3 參考連結
② Markdown components can not preview html content · Issue #3308 · PanJiaChen/vue-element-admin
相關文章
- 5 天開發介面系統技術小結
- 10 天開發前臺系統技術系列
- 湘宜購商城(系統開發)小程式技術搭建
- OpenSea藏品交易平臺開發NFT系統搭建技術
- vue-manage-system 後臺管理系統開發總結Vue
- 九層天塔DApp合約開發系統搭建技術APP
- 詠春堂新零售小程式系統開發技術
- 九層天塔技術開發丨原始碼丨九層天塔系統開發詳情分析原始碼
- nft數藏平臺系統開發技術方案丨數藏nft系統ai繪畫定製開發技術流程AI
- 區塊鏈baas底層系統平臺技術開發區塊鏈
- NFT交易平臺商城開發系統錢包搭建技術
- 開發一個大型後臺管理系統,應該用前後端分離的技術方案嗎?後端
- golang 後端技術開發必備總結Golang後端
- 益古云商小程式商城系統開發技術程式設計程式設計
- 玩家盛宴系統開發技術方案
- 拼團系統開發技術方案
- 後臺開發 -- 核心技術與應用實踐
- NFT遊戲系統開發/遊戲開發技術遊戲開發
- 湘宜購商城系統開發/湘宜購商城小程式開發技術方案
- 數字貨幣錢包系統開發平臺技術搭建
- 區塊鏈技術應用落地,bass平臺系統開發區塊鏈
- DAPP合約系統開發邏輯技術丨DAPP成熟系統開發技術方案APP
- Python量化合約系統開發技術,合約量化原始碼系統開發技術方案Python原始碼
- LaraCMS 後臺管理系統 - 小程式ACM
- 達贊系統技術開發/達贊DAS模式技術開發詳情模式
- Avatar阿凡達模式系統開發技術流程方案(成熟技術)模式
- 九層天塔DAPP系統開發技術|鏈上智慧合約dapp開發方案APP
- 區塊鏈技術應用企業平臺落地系統開發區塊鏈
- 區塊鏈技術系統開發,Bass平臺的落地應用區塊鏈
- HKT公鏈算力挖礦系統平臺開發技術
- NFT 鑄造交易 OpenSea 平臺系統開發案例技術介紹
- NFT鑄造交易丨Opensae交易平臺系統開發技術分析
- Forsage矩陣系統技術開發方案矩陣
- ETV全球熵系統技術開發方案熵
- EOS生態系統技術開發搭建
- MetaX星球系統制度開發(技術分析)
- 店夫子商城系統開發-技術支援
- DisruptDEX挖礦系統開發技術方案