ref 的複製 - daniel-qa/Vue GitHub Wiki

ref 的複製

先宣告,再複製(加入)值

form.value = { ...message };

// 原始物件
const message = {
  msgType: 'mail',         // 發送類型
  selType: 'batch',        // 挑選方式
  theme: 'Important Update',  // 主題
  subject: 'Subject',      // 標題
  content: 'Message Content', // 內容
  searchContent: ['keyword1', 'keyword2'], // 搜尋關鍵字
  sendTime: '2025-05-12T10:00:00', // 發送時間
  deliveryTime: 1683888000    // 發送時間的 UNIX 時間戳
};

// 定義 form 物件
const form = ref({});

// 複製 message 物件的屬性到 form 物件
form.value = { ...message };

console.log(form.value);

淺拷貝

不會改變記憶體,只會修改記憶體內的內容

Object.assign(form.value, message);

import { ref } from 'vue';

const form = ref({
  msgType: '',
  selType: '',
  theme: '',
  subject: '',
  content: '',
  searchContent: [],
  sendTime: '',
  deliveryTime: null
});

const message = {
  msgType: 'mail',
  selType: 'batch',
  theme: 'Important Update',
  subject: 'Subject',
  content: 'Message Content',
  searchContent: ['keyword1', 'keyword2'],
  sendTime: '2025-05-12T10:00:00',
  deliveryTime: 1683888000
};

// 直接將 message 的屬性寫入 form.value
Object.assign(form.value, message);

console.log(form.value);