最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序中this.setData的使用和注意事項

 更新時間:2019年08月28日 13:49:40   作者:zxin1210  
這篇文章主要介紹了微信小程序中this.setData的使用和注意事項,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

前言:微信小程序中經(jīng)常需要用到this.setData({})把變量值渲染到視圖層,那到底什么是this.setData,如何使用?需要注意哪些?作為一個初學(xué)者,分享一點(diǎn)我的經(jīng)驗,希望大家批評指正。

  介紹:setData函數(shù)主要用于將邏輯層數(shù)據(jù)發(fā)送到視圖層,同時對應(yīng)的改變this.data.x的值。

  參數(shù):Object 以 key : value 的形式表示,將 this.data 中的 key 對應(yīng)的值改變成 value。

使用:先給出代碼,wxss沒有什么意義就不貼了

index.wxml

 <view class="numview">test01======={{test01}}</view>
 <view class="numview">test02======={{test02}}</view>
 <button bindtap="testfun">測試</button>

index.js

Page({
 data: {
  test01: 1,
  test02: 2
 },
 testfun: function() {
  var that = this;
  if (this.data.test01 == 1) {
   that.setData({
    test02:8
   })
   console.log(this.data.test02)
  }
 },
 onLoad: function() {},
})

  此時經(jīng)過編譯后模擬器的顯示:

 

  這里都容易理解,當(dāng)點(diǎn)擊了button按鈕后,觸發(fā)點(diǎn)擊事件執(zhí)行testfun函數(shù),將test02設(shè)置為8,如圖:

  通過this.data.test02=8這種方式直接賦值可以嗎,答案是不可以,看下面:

使用this.data.test02=10的結(jié)果不會渲染到前臺頁面中顯示,但是后臺已經(jīng)改變,會造成前后臺數(shù)據(jù)不一致。

我又想到是不是可以先通過this.data.test02=10賦值,再通過this.setData渲染呢?

 onLoad: function() {
  this.data.test02 = 10;
  this.setData({
   test02
  })
 }

編譯報錯:test02 is not defined;

為什么呢?再進(jìn)行一項測試:

  onLoad: function() {
   this.data.test02 = 10;
   var test03 = 20;
   this.setData({
    test03
   })
   console.log(this.data.test03)
  }

編譯后顯示:

發(fā)現(xiàn)了什么?我個人覺得是這樣的:

一、this.setData中設(shè)置的key如果只有key沒有value,則從所在函數(shù)內(nèi)找這個變量,找到之后渲染到前臺指定位置。

 (1)如果Page對象的data中沒有定義該key,則setData自動創(chuàng)建,這個可以從打印結(jié)果中發(fā)現(xiàn)(this.data.test03,data中沒有定義)。

 (2)如果Page對象的data中已經(jīng)定義該變量,則修改data中原變量的值。

二、this.setData中設(shè)置的key如果有key有value,直接渲染到前臺并修改原data中的數(shù)據(jù)。

注意事項:

上面演示的使用說明也算是注意事項吧,理解透徹才能運(yùn)用自如,避免數(shù)據(jù)混亂。

另外給出官方的setData建議:https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html

常見的 setData 操作錯誤

1. 頻繁的去 setData

在我們分析過的一些案例里,部分小程序會非常頻繁(毫秒級)的去setData,其導(dǎo)致了兩個后果:

Android 下用戶在滑動時會感覺到卡頓,操作反饋延遲嚴(yán)重,因為 JS 線程一直在編譯執(zhí)行渲染,未能及時將用戶操作事件傳遞到邏輯層,邏輯層亦無法及時將操作處理結(jié)果及時傳遞到視圖層;

渲染有出現(xiàn)延時,由于 WebView 的 JS 線程一直處于忙碌狀態(tài),邏輯層到頁面層的通信耗時上升,視圖層收到的數(shù)據(jù)消息時距離發(fā)出時間已經(jīng)過去了幾百毫秒,渲染的結(jié)果并不實時;

2. 每次 setData 都傳遞大量新數(shù)據(jù)

由setData的底層實現(xiàn)可知,我們的數(shù)據(jù)傳輸實際是一次 evaluateJavascript 腳本過程,當(dāng)數(shù)據(jù)量過大時會增加腳本的編譯執(zhí)行時間,占用 WebView JS 線程,

3. 后臺態(tài)頁面進(jìn)行 setData

當(dāng)頁面進(jìn)入后臺態(tài)(用戶不可見),不應(yīng)該繼續(xù)去進(jìn)行setData,后臺態(tài)頁面的渲染用戶是無法感受的,另外后臺態(tài)頁面去setData也會搶占前臺頁面的執(zhí)行。

總結(jié)

以上所述是小編給大家介紹的小程序中this.setData的使用和注意事項,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • javascript簡單計算器 可美化

    javascript簡單計算器 可美化

    javascript簡單計算器 可美化,需要的朋友可以測試下。參考下實現(xiàn)原理。
    2011-10-10
  • uni-app網(wǎng)絡(luò)請求、數(shù)據(jù)緩存實例詳解

    uni-app網(wǎng)絡(luò)請求、數(shù)據(jù)緩存實例詳解

    這篇文章主要介紹了uni-app網(wǎng)絡(luò)請求、數(shù)據(jù)緩存的相關(guān)知識,本文通過實例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • 引入JavaScript時alert彈出框顯示中文亂碼問題

    引入JavaScript時alert彈出框顯示中文亂碼問題

    今天在HTML中引入JavaScript文件運(yùn)行時,alert彈出的提示框中文顯示為亂碼,怎么解決此問題呢?下面小編給大家?guī)砹艘隞avaScript時alert彈出框顯示中文亂碼問題的解決方法,一起看看吧
    2017-09-09
  • 判斷客戶瀏覽器是否支持cookie的示例代碼

    判斷客戶瀏覽器是否支持cookie的示例代碼

    本篇文章主要介紹了判斷客戶瀏覽器是否支持cookie的示例代碼。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • XmlUtils JS操作XML工具類

    XmlUtils JS操作XML工具類

    經(jīng)常用到對xml的操作,Java里面有dom和dom4j等工具類,但是Javascript就沒有,所以自己寫了一個,目前算作第一個版本吧??隙ㄟ€有很多地方需要改進(jìn),如果有需要用的朋友,可以把bug和需要完善改進(jìn)的地方留言或評論。
    2009-10-10
  • js設(shè)置cookie過期及清除瀏覽器對應(yīng)名稱的cookie

    js設(shè)置cookie過期及清除瀏覽器對應(yīng)名稱的cookie

    js設(shè)置cookie過期也就相當(dāng)于清除瀏覽器對應(yīng)名稱的cookie,下面有個不錯的示例,感興趣的朋友可以參考下
    2013-10-10
  • webpack 開發(fā)和生產(chǎn)并行設(shè)置的方法

    webpack 開發(fā)和生產(chǎn)并行設(shè)置的方法

    這篇文章主要介紹了webpack 開發(fā)和生產(chǎn)并行設(shè)置的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • JS實現(xiàn)玩轉(zhuǎn)風(fēng)車

    JS實現(xiàn)玩轉(zhuǎn)風(fēng)車

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)玩轉(zhuǎn)風(fēng)車,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Javascript實現(xiàn)簡單二級下拉菜單實例

    Javascript實現(xiàn)簡單二級下拉菜單實例

    這篇文章主要介紹Javascript實現(xiàn)二級下拉菜單的具體過程,需要的朋友可以參考下
    2014-06-06
  • 小程序卡片切換效果組件wxCardSwiper的實現(xiàn)

    小程序卡片切換效果組件wxCardSwiper的實現(xiàn)

    這篇文章主要介紹了小程序卡片切換效果組件wxCardSwiper的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論

萝北县| 察雅县| 延津县| 塘沽区| 涡阳县| 大余县| 溧阳市| 邯郸市| 志丹县| 柳江县| 兴国县| 吴桥县| 越西县| 遂昌县| 姚安县| 平南县| 当涂县| 石柱| 上林县| 奉化市| 阳城县| 盈江县| 本溪市| 长寿区| 龙井市| 文山县| 梨树县| 溆浦县| 民乐县| 长岛县| 碌曲县| 安阳县| 禄劝| 黄梅县| 合作市| 太和县| 东兰县| 米林县| 紫云| 宁德市| 高密市|