iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Software Development

30天!玩轉TypeScript開發書單系統系列 第 27

[Day27] 標籤吧!一文掌握Tags功能:Vue 3 + UnoCSS 設計元件

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20231011/201244629pFVUfJtw9.png


引言


很快來到一個尾聲
那就開始吧
今天會做一個標籤樣式的功能
為我們的書單上建立Tags
而且要可以複選


Firebase 控制台


先為我們另外的標籤資料
設定權限
加上以下

   match /bookTags/{document=**} {
  		allow read, write: if request.time < timestamp.date(2023, 10, 20);
		}

https://ithelp.ithome.com.tw/upload/images/20231011/20124462VNPQjysQOA.png


來一隻API


來到檔案firebase.ts

export const getBookTags = async () => {
  const collectionRef = collection(db, "bookTags");
  const orderedQuery = query(collectionRef, orderBy("title"));
  const queryDocs = await getDocs(orderedQuery);
  const results: DocumentData = [];
  if (queryDocs.empty) {
    return results;
  }

  queryDocs.docs.forEach((doc) => {
    const data = doc.data();
    const id = doc.id;
    const folder = { id, ...data }; 
    results.push(folder);
  
  });
  return results;
};

我們定義了非同步函數 getBookTags
並且也會把它做成非同步元件
從 Firebase 的 Firestore 資料庫中的 bookTagscollection
按照 title欄位排序並返回


最後


我們可以用到上一章節用到的方式複習一下
這樣就完成囉^^


上一篇
[Day26] 溝通吧!Vue3 元件家族如何講小故事呢?「defineEmits」與「defineProps」的應用
下一篇
[Day28] 驅動吧!終於完成自訂標籤文字顏色功能了!超派~~
系列文
30天!玩轉TypeScript開發書單系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言