小程序 setData 的詳解

一择葡、setData()方法:

1、參數(shù)接受一個對象剃氧,以key敏储,value的形式表示;
2朋鞍、參數(shù)和變量名稱一致已添,可用一個值代替(es6新語法特性)
3、可以設置一個或多個data數(shù)據(jù).


this.setData({
   list:'change data',
   info:'change data'
})

4番舆、key可以以數(shù)據(jù)路徑的形式給出(路徑形式的key必須帶引號)(經(jīng)小程序更新后酝碳,現(xiàn)已支持不加引號的寫法)

this.setData({
    'list[0].title' : 'change data',   //數(shù)據(jù)路徑key必須帶''號
    'list[0].num' : 'change data'      //數(shù)據(jù)路徑key必須帶''號
})

5、key值可以為變量恨狈,為變量的時候要用[ ]引起來


page({
  data:{
    todos:[{id:0,text:'abc',isDelete:false}]
  },
  change(e){
    var index = e.currentTarget.dataset.id;
    var deletedtodo='todos['+index+'].idDelete';
    this.setData({
       [deletedtodo]:true
    })
  }
})

注意:deletedtodo為變量作為key值的時候要用 [] 包裹起來疏哗。

6、直接修改this.data禾怠,雖然會改變數(shù)據(jù)返奉,但是頁面不會重新渲染,無法改變頁面狀態(tài)吗氏,會造成數(shù)據(jù)不一致的情況

7芽偏、單次設置的數(shù)據(jù)不能超過1024KB,請盡量避免一次設置過多的數(shù)據(jù)

8弦讽、不需要在this.data中預先定義污尉,使用setData()方法會自動創(chuàng)建該數(shù)據(jù)

this.setData({
    name:'張三'   //name在this.data中未定義,但不會報錯
})

name在this.data中未定義往产,但是這種寫法不會報錯被碗,而且還會在this.data.zhong創(chuàng)建name這條數(shù)據(jù)》麓澹可以用this.data.name獲取到該條數(shù)據(jù)

二锐朴、對數(shù)組的操作,json操作和數(shù)組一樣蔼囊。

1焚志、數(shù)組的增加:

我們可以自己組裝一個對象如上圖的obj,然后用push()方法將其添加到數(shù)據(jù)的最后畏鼓。注意push的數(shù)據(jù)的index是+1的酱酬,也就是說原本數(shù)組中index依次為0,1云矫,2岳悟,新增加的就是3,依次類推。如果想將數(shù)據(jù)插入到數(shù)據(jù)某個位置贵少,那么可以合理運用concat()的方法將數(shù)據(jù)合并到數(shù)據(jù)中呵俏。

也可以用splice()方法添加,第一個參數(shù)是插入的位置滔灶,第二個參數(shù)設為0普碎,則為添加,若為大于0的的數(shù)字則為要刪除的個數(shù)录平,第三個參數(shù)只有在第二個參數(shù)為0是使用麻车,是添加的內(nèi)容。這種方法非常靈活斗这,只需要改變第一個參數(shù)就可以將內(nèi)容添加到數(shù)據(jù)的任何一個地方动猬。下面附上splice的用法;

Splice

  • splice()方法向/從數(shù)組中添加/刪除元素表箭,然后返回被刪除的元素組成的數(shù)組赁咙。
  • 用于數(shù)組對象。
  • arr.splice(index, howmany, item1,…, itemX)
  • 注意:這個方法會對原數(shù)組做出修改免钻。獲得的也是新數(shù)組彼水。

2、數(shù)組的刪除:

刪除也是用splice()方法實現(xiàn)的极舔,ceshi.splice(1,1)就是從index為1的位置開始凤覆,刪除1個元素。splice()用法參上拆魏。

3盯桦、數(shù)組的修改:

將key值以數(shù)據(jù)路徑的形式賦值,可以達到修改數(shù)據(jù)中的某一條渤刃,此處俺附,我們只將ceshi[0].value的值改變?yōu)?oooo',其他數(shù)據(jù)未發(fā)生變化溪掀。

也可以用這種方法修改數(shù)組的參數(shù),對這種方法有疑問的可以參考setData()第二條步鉴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揪胃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氛琢,更是在濱河造成了極大的恐慌喊递,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阳似,死亡現(xiàn)場離奇詭異骚勘,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門俏讹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來当宴,“玉大人,你說我怎么就攤上這事泽疆』福” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵殉疼,是天一觀的道長梯浪。 經(jīng)常有香客問我,道長瓢娜,這世上最難降的妖魔是什么挂洛? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮眠砾,結(jié)果婚禮上虏劲,老公的妹妹穿的比我還像新娘。我一直安慰自己荠藤,他們只是感情好伙单,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哈肖,像睡著了一般吻育。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淤井,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天布疼,我揣著相機與錄音,去河邊找鬼币狠。 笑死游两,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的漩绵。 我是一名探鬼主播贱案,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼止吐!你這毒婦竟也來了宝踪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤碍扔,失蹤者是張志新(化名)和其女友劉穎瘩燥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體不同,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡厉膀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年溶耘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片服鹅。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡凳兵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出菱魔,到底是詐尸還是另有隱情留荔,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布澜倦,位于F島的核電站聚蝶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏藻治。R本人自食惡果不足惜碘勉,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桩卵。 院中可真熱鬧验靡,春花似錦、人聲如沸雏节。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钩乍。三九已至辞州,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寥粹,已是汗流浹背变过。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涝涤,地道東北人媚狰。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像阔拳,于是被迫代替她去往敵國和親崭孤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容