欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

解決 mpvue 經(jīng)典 bug:同路由切換時,上次的數(shù)據(jù)會保留 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

解決 mpvue 經(jīng)典 bug:同路由切換時,上次的數(shù)據(jù)會保留

發(fā)表時間:2021-1-11

發(fā)布人:葵宇科技

瀏覽次數(shù):86

由于一直在用vue技術棧,因此初次開發(fā)小程序嘗試使用【mpvue】。盡管聽聞框架已停止維護,為了上手迅速,不顧可能存在的眾多bug,毅然用起來。

果不其然,一個大bug出現(xiàn)了: 同一路由切換時,上一次的頁面數(shù)據(jù)會保留

項目實戰(zhàn)bug: mpvue重構cnode社區(qū)

github用戶已在mpvue的issues給出相關原因:

參考眾多答案后,用“建頁面棧”的辦法得以解決:

const dataStack = []; // 建一個頁面棧

export default {
  data () {
    return {...};
  },
  onLoad () {
    dataStack.push({ ...this.$data }); // 備份數(shù)據(jù)
    // 其他初始化....一定要先備份,再做其他初始化
  },
  onUnload () {
    Object.assign(this.$data, dataStack.pop()); // 恢復數(shù)據(jù)
  }
}

由于 vue 的 mixin 中的代碼先于頁面執(zhí)行,因此上述方法可優(yōu)化到 mixin.js 文件中

let mixin = {
  data() {
    return {
      dataStack: [], // 解決mpvue相同組件數(shù)據(jù)不更新問題,建立棧堆
    };
  },
  onUnload() {
    Object.assign(this.$data, this.dataStack.pop()); // 恢復
  },
  onLoad() {
    this.dataStack.push({ ...JSON.parse(JSON.stringify(this.$data)) }); // 備份
  },
};
export default mixin;

bug得以解決:

相關案例查看更多