微信小程序setData數(shù)據(jù)太大解決方案

1、先碼為敬

數(shù)據(jù)結(jié)構(gòu)

speAllArr: [
  {
    id: '86',
    classifyIIShowFlag: false,
    firstData: {...}
    ...
  },{
    id: '87',
    classifyIIShowFlag: false,
    firstData: {...}
    ...
  }
]

setData的解決方案

// 添加數(shù)據(jù)
this.setData({
  ['speAllArr[' + speAllArr.length + ']']: res.data
})

// 設(shè)置開(kāi)關(guān)
this.setData({
  ['speAllArr[' + dataset.index + '].classifyIIShowFlag']: !speAllArr[dataset.index].classifyIIShowFlag
})


2、再講道理

  • 我們先說(shuō)setData:

    微信小程序setData數(shù)據(jù)太大解決方案——setData介紹.png

    setData 函數(shù)用于將數(shù)據(jù)從邏輯層發(fā)送到視圖層(異步),
    同時(shí)改變對(duì)應(yīng)的 this.data 的值(同步)。

  • setData需要注意的事項(xiàng)

    1. 直接修改 this.data 而不調(diào)用 this.setData 是無(wú)法改變頁(yè)面的狀態(tài)的,
      還會(huì)造成數(shù)據(jù)不一致。
    2. 僅支持設(shè)置可 JSON 化的數(shù)據(jù)。
    3. 單次設(shè)置的數(shù)據(jù)不能超過(guò)1024kB,請(qǐng)盡量避免一次設(shè)置過(guò)多的數(shù)據(jù)。
    4. 請(qǐng)不要把 data 中任何一項(xiàng)的 value 設(shè)為 undefined ,
      否則這一項(xiàng)將不被設(shè)置并可能遺留一些潛在問(wèn)題。

  • 如何解決需要設(shè)置的數(shù)據(jù)量過(guò)大的問(wèn)題呢
    使用中括號(hào) 當(dāng)然, 是英文的 " [] ",
    文檔上也寫(xiě)得很清楚, data可接受的值是Object;
    我們只要吧這個(gè)Object傳進(jìn)去就OK了;

    1. 比如說(shuō)我有一個(gè)數(shù)組, 當(dāng)我改變數(shù)組中一個(gè)值的時(shí)候,
      講道理我只需要跟新這個(gè)值就行了
    2. 道理是這樣 如何才能指定更新到這個(gè)值呢?
    3. 用中括號(hào), 把需要修改的key值拼接起來(lái)就OK了!
    this.setData({
      ['tempArr[' + needChangeArrIndex + '].flag']: true,
    })
    
    1. 這樣就可以避免 setData的數(shù)據(jù)太大 帶來(lái)的問(wèn)題啦~
    2. 當(dāng)然你也可以這樣寫(xiě):
    const key = `tempArr[${needChangeArrIndex}].flag`;
    theSetData[key] = true;
    this.setData(theSetData)
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 每天的學(xué)習(xí)記錄,可能有的地方寫(xiě)的不對(duì),因?yàn)閯倢W(xué),以后發(fā)現(xiàn)錯(cuò)的話會(huì)回來(lái)改掉整體流程 https://develope...
    有點(diǎn)健忘閱讀 5,018評(píng)論 0 7
  • 因新工作主要負(fù)責(zé)微信小程序這一塊,最近的重心就移到這一塊,該博客是對(duì)微信小程序整體的整理歸納以及標(biāo)明一些細(xì)節(jié)點(diǎn),初...
    majun00閱讀 7,632評(píng)論 0 9
  • 前言: 上一篇文章我們介紹了.wxml和.wxss文件,這篇文章對(duì)js文件進(jìn)行詳細(xì)的講解,首先貼上一個(gè)簡(jiǎn)單的js文...
    Smile__EveryDay閱讀 20,411評(píng)論 0 7
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,793評(píng)論 0 3
  • 感恩, 感恩今早陽(yáng)光明媚,心情愉悅,起床 感恩今早媽媽做好飯,等著我吃 感恩今天早上小侄女一早醒來(lái)就找我玩 感恩,...
    薄荷涼了夏_da9c閱讀 195評(píng)論 0 0

友情鏈接更多精彩內(nèi)容