国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Vue.js中使用getter和/或計算屬性的最佳實踐
P粉436688931
P粉436688931 2024-04-01 18:22:49
0
1
817

我喜歡vue.js,我肯定喜歡計算屬性和VueX getters。但是我到了一個不確定的地步,不確定我使用它們的方式是否會在性能方面有一些缺點。

這是我程式碼中的一個常見模式(對於本機(jī)元件資料和計算屬性也適用):

從這個簡單的狀態(tài)(真相來源)開始:

export default () => ({
   bonds: {
    eth: [],
    celo: []
  }
})

在我的getter中,我通常會按照以下方式進(jìn)行:

export default {
  getBondsEth(state) {
    return state.bonds.eth
  },
  getBondsCelo(state) {
    return state.bonds.celo
  },
  getTotalBondsEth(_, getters) {
    return getters.getBondsEth.length
  },
  getTotalBondsCelo(_, getters) {
    return getters.getBondsCelo.length
  },
  getTotalBonds(_, getters) {
    return getters.getTotalBondsEth + getters.getTotalBondsCelo
  },
  getWhateverComputationEth(_, getters) {
    return getters.getBondsEth.reduce... or map or filter or find etc....
  }
  ...
}

所以,我的問題將是

  1. 這是否被認(rèn)為是一種不好的做法,因為我使用了依賴其他getter的getter?這些被認(rèn)為是循環(huán)依賴嗎?

  2. 我是否應(yīng)該總是直接從真相來源衍生出我的getter?例如,將上述更改為...

getTotalBonds(state) {
    return state.bonds.eth.length + state.bonds.celo.length
}
  1. 是否有一種方法可以使用瀏覽器控制臺來調(diào)試我的getter或計算屬性,以確保我沒有效能問題或奇怪的迭代循環(huán)等?

如果您花時間回答,非常感謝!

P粉436688931
P粉436688931

全部回覆(1)
P粉946336138

這不會是一個循環(huán)依賴。只有當(dāng)getter A 依賴getter B,而getter B 又依賴getter A 時,才會出現(xiàn)循環(huán)依賴,這將導(dǎo)致無限遞歸。

getter是沒問題的,但據(jù)我所知,Vue會在每個tick上調(diào)用它們(關(guān)於什麼是tick的更多信息,請點擊這裡) ,這在大多數(shù)情況下是浪費(fèi)的。因此,對於很少變化的值,建議使用computed,因為computed只會被呼叫一次,Vue會快取執(zhí)行結(jié)果。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板