雖然沒準備什麼資料
  • JS魔法學院
    • JS表單
    • 教程
    • 練習題
  • AI
  • 程式相關
    • CSS
    • Javascript
  • 試題與解答
    • 微生物免疫
    • 化學
    • 生物輸送
  • 台式外語
    • 韓國語
    • 日本語
  • 有趣網站
首頁 » Vue 3 中watch物件陣列(array of objects)變化的三種方法
Vue3學院watch

Vue 3 中watch物件陣列(array of objects)變化的三種方法

by admin 2024-08-16
watch array of objects
1.8K

目錄

  • 問題描述
  • 解決方案
    • 1. 使用 Lodash 的 cloneDeep 方法
    • 2. 使用 JSON.parse(JSON.stringify())
    • 3. 使用 structuredClone()
  • 比較與選擇
  • 結論

在 Vue 3 中,我們經常需要監視陣列中物件的變化。

然而,由於 Vue 的響應式系統的特性,直接使用 watch 可能無法正確檢測到這些變化。

本文將介紹三種常用的解決方案,並比較它們的優缺點。

問題描述

首先,讓我們看看為什麼直接使用 watch 可能會遇到問題:

const items = ref([
  { id: 1, name: 'Item 1' },
  { id: 2, name: 'Item 2' }
]);

watch(items, (newItems, oldItems) => {
  // newItems 和 oldItems 指向同一個物件
  // 無法正確檢測變化
});

在這個例子中,newItems 和 oldItems 實際上指向同一個物件,因此我們無法比較它們的差異。

解決方案

1. 使用 Lodash 的 cloneDeep 方法

Lodash 的 cloneDeep 方法可以創建deep copy,包括處理循環引用。

使用電子郵件訂閱網站

輸入你的電子郵件地址訂閱網站的新文章,使用電子郵件接收新通知。

最新文章

  • 7-11 雙蔬鮪魚飯糰

    2025-10-30
  • 保持專注的秘訣

    2025-10-29
  • Cursor Zeabur 插件 vs GitHub 綁定部署

    2025-07-30
  • Product Brief Template — AI 建構式應用產品

    2025-07-10
  • 日本語能力試驗 JLPT N3 – 文法

    2025-04-13

文章分類

  • JS魔法學院 (7)
    • JS表單 (1)
    • 教程 (4)
    • 練習題 (2)
  • soledad佈景主題 (1)
    • 單篇文章 (1)
  • Vue3學院 (2)
    • watch (1)
    • 設定 (1)
  • Wordpress外掛介紹 (1)
  • 台式外語 (5)
    • 日本語 (3)
    • 英語 (1)
    • 韓國語 (1)
  • 外食成份 (1)
  • 好書介紹 (3)
  • 小孩相關 (1)
  • 投資理財 (11)
    • 定存 (2)
    • 股票 (9)
      • 台股 (1)
      • 美股 (3)
  • 效率 (1)
  • 有趣網站 (1)
  • 未分類 (1)
  • 程式相關 (11)
    • AI (5)
    • CSS (1)
    • google sheets (1)
    • Javascript (1)
    • 豆知識 (2)
  • 網站部署 (1)
  • 試題與解答 (12)
    • 儀器分析 (1)
    • 專利研究 (2)
    • 微生物免疫 (8)
    • 醫用統計學 (1)

網站統計

  • 0
  • 4
  • 4
  • 198
  • 5,461
  • 3,741
  • 58
  • 2025-10-30

© 2023 雖然沒準備什麼資料

雖然沒準備什麼資料
  • JS魔法學院
    • JS表單
    • 教程
    • 練習題
  • AI
  • 程式相關
    • CSS
    • Javascript
  • 試題與解答
    • 微生物免疫
    • 化學
    • 生物輸送
  • 台式外語
    • 韓國語
    • 日本語
  • 有趣網站