軟件工程日報20
關于響應式對象的遇到的問題 以下為例
定義dialogVisible 是通過 ref 函數創建的響應式對象。在 Vue 3 里,ref 函數會把一個普通的值包裹成一個響應式的對象,該對象有一個 .value 屬性用于獲取或設置其內部的值。下面詳細說明為何在函數里使用 dialogVisible 時要加上 .value。
ref 創建響應式對象
ref 函數是 Vue 3 組合式 API 里用于創建響應式數據的方法。當你使用 ref 創建一個變量時,實際上創建的是一個包含 .value 屬性的對象。例如:
import { ref } from 'vue';
const dialogVisible = ref(false);
這里的 dialogVisible 并非布爾值 false,而是一個包含 .value 屬性的對象,其 .value 屬性的值為 false。
2. 在函數中訪問 ref 對象的值
當你要在函數里訪問或修改 ref 對象的值時,就需要使用 .value 屬性。比如在 addCategory 函數里:
const add = async() => {
dialogVisible.value = false;
};
在 dialogVisible.value = false; 這行代碼中,你是在把 dialogVisible 對象的 .value 屬性設置為 false。因為 dialogVisible 是一個 ref 對象,直接對 dialogVisible 賦值并不能修改其內部的值,只有通過 .value 屬性才能訪問和修改其內部的實際值。
3. 在模板中使用 ref 對象
在 Vue 3 的模板里,當使用 ref 對象時,Vue 會自動解包 ref 對象,也就是你無需手動添加 .value。例如在模板中:
<el-button type="primary" @click="dialogVisible = true">添加分類
這里的 dialogVisible 會自動被解包,所以你可以直接使用它,而不用寫成 dialogVisible.value。
綜上所述,在函數里使用 ref 對象時,要通過 .value 屬性來訪問和修改其內部的值;而在模板中使用 ref 對象時,Vue 會自動解包,無需手動添加 .value。

浙公網安備 33010602011771號