js 數據比對 - daniel-qa/Vue GitHub Wiki
js 數據比對
- 使用 JSON.stringify 比對 ref 和 recative 數據
if (JSON.stringify(refObj.value) === JSON.stringify(reactiveObj)) {
console.log('兩個對象的內容相同');
}
JSON.stringify() 是 JavaScript 中非常重要的工具,用於將 JavaScript 对象或数组转换为 JSON 字符串。
- JSON.stringify() 的作用
序列化: 將 JavaScript 中複雜的數據結構(如物件、陣列)轉換成簡單的文本格式(JSON),方便傳輸、儲存或與其他語言交互。
格式化: 可以將 JSON 字符串格式化,增加可讀性。
- 使用方式
let obj = { name: "Alice", age: 30 };
let jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出: {"name":"Alice","age":30}
假設有 ref 和 reactive 的數據如下:
const refObj = ref({ name: 'paul' });
const reactiveObj = reactive({ name: 'paul' });
- 進行的比較分析:
比較條件 | 結果 | 解釋 |
---|---|---|
refObj.value === reactiveObj.value | 錯誤 | reactiveObj 沒有 .value,會導致執行錯誤。 |
refObj.value === reactiveObj | false | refObj.value 是普通對象,reactiveObj 是代理對象,引用不同。 |
refObj === reactiveObj | false | refObj 和 reactiveObj 是不同的響應式類型,引用不同。 |
如何進行內容比較?
如果要比較它們的內容是否相同,可以使用深度比較工具或手動檢查對象內容:
- 使用 JSON.stringify 進行淺層比較
if (JSON.stringify(refObj.value) === JSON.stringify(reactiveObj)) {
console.log('兩個對象的內容相同');
}