Vue.js + axios 介紹與實作(下)

延續上個章節,實作DELETE & PUT

Jacy Chu
4 min readDec 14, 2021

📝 回顧上個章節:Vue.js + axios 介紹與實作(上)
目前使用者可以查看以及輸入新資料。
這章節將延續上個章節,增添擴充功能!

📋 目錄

  1. [實作]加上刪除功能
  2. [實作]新增編輯 dialog
  3. [實作]完成編輯功能
  4. Vue + axios 系列小結

[實作]加上刪除功能

step1 新增資料刪除按鈕

在 DataTable.vue <v-data-table> 中間加上下方 template 這段:

非完整 DataTable.vue 內容

這一段是為了製造一整排客製化的 icon。在下方設定 data header 部分加上:

{text: ‘Delete’, value: ‘del_data’}

此時畫面多出一排垃圾桶 👻

step2 呼叫API

同個檔案下方加入 deleteData function。這邊代入一個員工 ID 參數,是為了刪除對應的資料。

非完整 DataTable.vue 內容

step3 axios 設定

設定 aioxs 方法的 DataService.js,加上 deleteData,並代入準備好的員工 ID。

非完整 DataService.js 內容

step4 修改 ID 設定寫法

原本沒有刪除功能,id 直接取資料長度 +1 做設定 📃
加上刪除功能,資料的長度不再是固定累加。id 作為資料識別的關鍵 key,不能重複!所以這邊做了相對應的修改。

非完整 InputForm.vue 內容

修改過後,會在資料庫撈取數據時,即取得最後一筆資料的 id,之後新增資料會以此 id 為基準加一。

[實作]新增編輯 dialog

有了刪除功能,最後還差編輯功能 ✏️
這個部分相較之下複雜一下,故拆分成兩個段落說明,這邊介紹 Vuetify 提供的 dialog 功能。

step1 新增資料刪除按鈕

在 DataTable.vue <v-data-table> 中間加上下方 template 這段:

非完整 DataTable.vue 內容

這邊 click 綁定了 openModal,會依 true false 來切換 dialog 的開啟及關閉。其他綁定的資訊,是為了彈開 dialog 時,希望可以代出選中的該筆資訊。

step2 新增 Modal

在 DataTable.vue 檔案中</div>區塊結束前,加上下方的程式碼:

非完整 DataTable.vue 內容

下方需要引用 EditModal.vue 元件,並命名為 edit-modal。

step3 撰寫 Modal(Dialog) 內容

使用<v-dialog>,搭配 openModal 切換完成。要顯示該筆資料,以 props 傳進來,要點選關閉 dialog 則用 $emit 傳給父做關閉的動作。
(由於此區塊的程式碼較長,且混雜下個段落的內容,故先略。往下滑動至下個段落即可查看完整 EditModal.vue 程式碼。)

[實作]完成編輯功能

接續上個段落,提交更新的表單,需要收集以下資訊。

非完整 EditForm.vue 內容

並在 DataService.js 新增 editData,更新整個表單使用 PUT。

非完整 DataService.js 內容

完整的 EditForm.vue 程式碼如下:

完成全部的撰寫,此時瀏覽器的畫面操作如下:

看起來很不錯!功能也齊全了🎉

Vue + axios 小結

先認識 axios 並下載好預先準備的檔案,經由一步步實作,熟悉 Vue 搭配 axios 介接 API。此系列文章完整涵蓋 get, post, delete, put 增刪查改方法。實作小專案,若想再更優化,可以加上表單驗證功能。

最後,附上此練習的 GitHub 檔案連結 🔗 ,專案資料夾名稱:vue-axios-practice-Employees

✔️ TAG: V1.0 get & post
✔️ TAG: V2.0 加上delete & put

有任何指點或建議都可以在下方留言~🙏

If you “GET” the point, give me some claps. 👏👏👏
If you don’t, I will try “POST”. 📬

--

--