我在一家簡單的商店作業(見代碼)。而且效果很好。所以我可以在 RouterView 中更改資料,它會在導航組件中立即更改。對我來說,這聽起來像是一種觀察者模式,不是嗎?
// store.js
import { reactive } from 'vue'
export const store = reactive({
gender: "",
name: "",
});
問題:但我想知道它是如何作業的,以及在 Vanilla JS 中的效果如何。
uj5u.com熱心網友回復:
根據檔案:
在 Vue 3 中,Proxies 用于回應式物件,getter / setter 用于 refs。
該頁面還提供了偽代碼:
function reactive(obj) {
return new Proxy(obj, {
get(target, key) {
track(target, key)
return target[key]
},
set(target, key, value) {
target[key] = value
trigger(target, key)
}
})
}
function ref(value) {
const refObject = {
get value() {
track(refObject, 'value')
return value
},
set value(newValue) {
value = newValue
trigger(refObject, 'value')
}
}
return refObject
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507928.html
標籤:javascript Vue.js
上一篇:在兄弟標簽中訪問可迭代
