vue3 關於reactive的重置問題及解決
關於reactive的重置問題
在vue3的reactive的使用, 有時候需要對裡面的數據進行清空處理, 下面推薦一個方法
假如有一個info的reactive的數據
const info = reactive<{ name: string; age: string; gender: string }>({ name: "1", age: "2", gender: "3", });
重置方法
const clear = () => { const keys = Object.keys(info); let obj: { [name: string]: string } = {}; keys.forEach((item) => { obj[item] = ""; }); Object.assign(info, obj); };
理解vue3中的reactive
1.什麼是reactive?
- reactive是Vue3中提供實現響應式數據的方法.
- 在Vue2中響應式數據是通過defineProperty來實現的.
- 而在Vue3響應式數據是通過ES6的Proxy來實現的
2.reactive註意點
- reactive參數必須是對象(json/arr)
- 如果給reactive傳遞瞭其他對象,默認情況下修改對象,界面不會自動更新,如果想更新,可以通過重新賦值的方式.
錯誤示范
當傳遞的是非對象時,頁面不會發生響應
正確實例
arr正確實例
傳入數組會轉成proxy對象
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Vue API中setup ref reactive函數使用教程
- 詳解Vue3的響應式原理解析
- JavaScript Object.defineProperty與proxy代理模式的使用詳細分析
- vue3+ts中ref與reactive指定類型實現示例
- 詳解vue3 響應式的實現原理