function shallowRef(val) { return shallowReactive({value:val}); } function shallowReactive(obj) { return new Proxy(obj, { get(obj, key){ return obj[key]; }, set(obj, key, val){ obj[key] = val; console.log('更新UI界面'); return true; } }) } let obj = { a:'a', gf:{ b:'b', f:{ c:'c', s:{ d:'d' } } } }; /* let state = shallowReactive(obj); //只有最外层的a属性变化,才会触发视图更新 // state.a = '1'; state.gf.b = '2'; state.gf.f.c = '3'; state.gf.f.s.d = '4'; */ let state = shallowRef(obj); // state.value.a = '1'; // state.value.gf.b = '2'; // state.value.gf.f.c = '3'; // state.value.gf.f.s.d = '4'; // ref的最外层属性value,只有它改变,视图才会跟新 state.value = { a:1, gf:{ b:2, f:{ c:3, s:{ d:4 } } } }