From e9f891cf15fcc99edf39c3e60e0c9ee8cc9e5e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A7=89?= Date: Sat, 7 Oct 2023 00:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=B1=E5=BA=A6=E4=BB=A3=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/weigets.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/public/weigets.js b/public/weigets.js index 33a0c3a..9fa7c96 100644 --- a/public/weigets.js +++ b/public/weigets.js @@ -99,3 +99,20 @@ export function Dialog(options) { element.onremove = () => observer.disconnect() return element } + +// 深度代理, 用于监听数据的变化 +export function useProxy(obj, callback) { + return new Proxy(obj, { + get(target, key) { + if (typeof target[key] === 'object' && target[key] !== null) { + return useProxy(target[key], callback) + } + return target[key] + }, + set(target, key, value) { + target[key] = value + callback(target, key, value) + return true + } + }) +}