---
# System prepended metadata

title: 檢核點 - 第五週
tags: [Vue 直播班 - 2021 夏季班]

---

---
tags: Vue 直播班 - 2021 夏季班
---

# 檢核點 - 第五週

**重點觀念：**
1. 前台購物車操作流程
2. Vee Validate 套件使用
3. loading 效果

**回覆參考：**
```
購物車操作行為完整，整體流程順暢，沒有太大的問題，恭喜過關
```
**注意：**
```
測試表單功能建議不要填寫自己的 email, 姓名等等真實資訊
```

---
**前台產品頁面：**

* 注意要接的是前台的 API (url 不包含 admin)
* 送出訂單後，購物車需要清除原本內容
* 用戶端的頁面不需要加上 Token，Token 是屬於安全性的資料，不應該呈現於前台頁面上（實作中請避免此行為）
* 有使用 AJAX 行為的部分都可以加上 loading 效果
* 表單中的 email 、 電話、地址 的 label for 、input id 是否有對上
* 驗證欄位是否都有正確
    - 姓名：必填
    - Email：必填 / 需要符合格式 / input type 為 email
    - 電話：必填 / 超過 8 碼 / input type 為 tel
    - 地址：必填
    - 留言：非必填
    - 提示訊息請改為中文

助教新增建議：

* 當購物車沒有產品時可以設計不同畫面，讓清空按鈕不見，或是無法點擊的狀態
* 在商品細節 modal 加入購物車後可以關閉 modal

- 同學提問過，有找一段時間的問題:  修改購物車中商品數量 API 會使用到兩種 id ，以[官方範例](https://github.com/hexschool/live-vue3-training-chapter-works/blob/master/week5/javascript/app2.js#L92)來說 API 網址會使用到  `${data.id}` ，而帶上的參數資料會使用到 data.product_id

- [同學提問](https://rpg.hexschool.com/admin/task/confirm/index#/task/review/19391)要怎麼定義 veevalidate 驗證訊息（應該是這個意思xd)：參考[說明文件](https://vee-validate.logaretm.com/v4/guide/i18n#:~:text=configure(%7B%0A%20%20//%20Generates%20an%20English%20message%20locale%20generator%0A%20%20generateMessage%3A%20localize(%27en%27%2C%20%7B%0A%20%20%20%20messages%3A%20%7B%0A%20%20%20%20%20%20required%3A%20%27This%20field%20is%20required%27%2C%0A%20%20%20%20%7D%2C%0A%20%20%7D)%2C%0A%7D)%3B)設定
```
configure({
  // Generates an English message locale generator
  generateMessage: localize('en', {
    messages: {
      required: 'This field is required',
    },
  }),
});
```
如果定義的規則名稱和預設的不同，例如：defineRule(‘number’, numeric);
.json 檔沒有定義 number 的驗證訊息，就需要自行定義

- [問題連結](https://rpg.hexschool.com/admin/task/confirm/index#/task/review/19431)（第 6 題）
`<template v-if=“cart.carts”></template>`
當 cart.carts 為空陣列時，就會報錯 `Uncaught TypeError: Cannot read property ‘cart’ of undefined`
解決方式 → 若會報錯的話可以在 data 那邊給初始值 carts:[] 

- 問題：在 vue devtool 查看元件有出現 Fragment 狀態
→ 可以參考 Vue.js 官方文件說明，大概說明 Vue3 可以在 template 支援多個 DOM 根節點（Vue2 則不支援，需透過其他方式綁定 DOM），不是錯誤，也不影響資料操作
[參考](https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/752569/#outline__6)、[參考](https://v3.vuejs.org/guide/migration/fragments.html#overview)


- 問題：同學希望製作雙語切換的頁面 → 如果需要顯示不同語言，可以參考 [Vue i18n 套件](https://kazupon.github.io/vue-i18n/)支援不同語言，[參考做法](https://www.minwt.com/webdesign-dev/js/20464.html)，也可以搜尋 Vue i18n 看看其他的做法範例

- 問題：vee-validate 套件想切換不同語言 → 參考 [vee-validate 說明文件](https://vee-validate.logaretm.com/v4/guide/i18n#overview)，有提到可以使用 setLocale() 來更改語言

