• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序改变页面显示setData、修改数组、分页等学习笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
一、setData
小程序页面加载渲染时是通过获取js文件中Page里面初始化数据data来进行渲染。
js:
  /**
  * 页面的初始数据
  */
  data: {
    name:\'张三\',
  },
 
wxml:
  <text>{{name}}</text>
 
结果:

 

 
完成渲染后,直接通过赋值是无法改变页面中所显示的数据,只能通过setData来改变(每次最多只能改变1M数据)。
如果通过直接赋值,如:this.data.name = \'李四\' ,是无法改变页面的显示,还会造成视图层和数据层数据不一致。
在js中onLoad函数中运行this.data.name = \'李四\' 
  onLoad: function(options) {
    this.data.name = \'李四\'; // 运行该命令修改data.name
  },
结果无法改变视图显示

 

 

正确改变页面显示的做法:

js:

运行setData前页面初始化时的数据:

  /**
  * 页面的初始数据
  */
  data: {
    name: \'张三\',
    age: 17,
  },
   

 

运用setData后:
  this.setData({
    name:\'李四\',
    age:18
  })
  结果:

  

 

二、setData运用场景和方法
  只要需要改变页面显示都需要运用setData (请求数据wx.request 后、 交互后 需要改变页面显示都需要通过setData 来改变)
  1、改变对象某个属性
      this.setData({
          [\'info.name\']: \'李四\',  // 此时属性名需要用字符串
          [\'info.age\']: 18
      })
 
  2、改变数组某个元素或对象属性
    为了不影响性能不建议一次性更新整个数组(如果数组数据太大),应该只更新某个元素。
 
    确定改变某个元素:  
    let str =`lists[2].name`; // 此时属性名需要用字符串
    this.setData({
      [str]:李四,
    })
 
     不确定改变的是哪个元素(交互时,用户点击数组的某个元素对应改变显示内容):
     用户点击时可以把所点击的下标传回进行对应的更改;
      click(i){
        let index=1;
        let str = `lists[${index}].name`;// 此时属性名需要用字符串
        this.setData({
          [str]:\'李四\',
        })
       }
 
  3、分页(适用于上拉加载更多)
    分页为了避免一次性更新太多数据,建议把数据设计成二维数组如下:
    通过wx:if来渲染。
    每次加载新页面时在users后面新添加一页数据即可
      users: [
        [{name: \'张三\',age: 17}, {name: \'张三\',age: 17}], // 第一页数据
        [{name: \'张三\',age: 17}, {name: \'张三\',age: 17}]  // 第二页数据
        。。。。
        [{name: \'张三\',age: 17}, {name: \'张三\',age: 17}]  // 第n页数据
      ]
 
      let str = `users[${page}]`;
      let datas=[{name: \'张三\',age: 17}, {name: \'张三\',age: 17}];  // 第n页数据
      this.setData({
        [str]:datas
      })
 
   wxml:
    <block wx:for="{{users}}">
      <view wx:for="{{item}}" wx:for-item="userItem">
        <text>{{userItem.name}}</text>
        <text>{{userItem.name}}</text>
      </view>
    </block>
 
 
以上是本人初学小程序的笔记,如有错误请指出
 
 
 
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序一键链接WiFi发布时间:2022-07-18
下一篇:
微信小程序开发(六)循环播放图制作 - 老杨学堂发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap