欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

在小程序中使用this.setData時需要注意哪些事項

本篇文章給大家分享的是有關在小程序中使用this.setData時需要注意哪些事項,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)主營扎蘭屯網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,APP應用開發(fā),扎蘭屯h5小程序開發(fā)搭建,扎蘭屯網(wǎng)站營銷推廣歡迎扎蘭屯等地區(qū)企業(yè)咨詢

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

參數(shù):Object 以 key : value 的形式表示,將 this.data 中的 key 對應的值改變成 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)過編譯后模擬器的顯示:

 在小程序中使用this.setData時需要注意哪些事項

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

在小程序中使用this.setData時需要注意哪些事項

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

在小程序中使用this.setData時需要注意哪些事項

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

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

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

編譯報錯:test02 is not defined;

為什么呢?再進行一項測試:

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

編譯后顯示:

在小程序中使用this.setData時需要注意哪些事項

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

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

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

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

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

注意事項:

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

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

常見的 setData 操作錯誤

1. 頻繁的去 setData

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

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

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

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

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

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

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

以上就是在小程序中使用this.setData時需要注意哪些事項,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:在小程序中使用this.setData時需要注意哪些事項
URL網(wǎng)址:http://chinadenli.net/article44/gohjhe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作標簽優(yōu)化品牌網(wǎng)站設計、云服務器定制網(wǎng)站、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設