当前位置: 首页 > news >正文

小程序视图渲染数据和部分事件的绑定

今天依旧使用这个目录进行教学

 数据的渲染 

 在 index.js的 page中定义一个data对象结构是这样的

Page({data:{name:'张三'}
})

在index.wxml 中 利用模板语法进行渲染 

 <view >{{name}}</view>

注意这个模板里边不能使用js的方法

要循环渲染数组,如 在data中定义了以下数组

    list:[{name:'小米',age:18,sex:'男'},{name:'小埋',age:20,sex:'女'},{name:'小光',age:16,sex:'女'},{name:'大平',age:26,sex:'男'},]

   在 index.wxml中进行渲染 

 <view wx:for="{{list}}">姓名{{item.name}}年龄{{item.age}}性别{{item.sex}}</view>

 语法和vue的循环很像,就是叫法不同

事件的分类

微信小程序的事件分为冒泡事件和非冒泡事件

冒泡事件

touchstart:手指触摸动作开始

touchmove:手指触摸后移动

touchcancel:手指触摸动作被打断,如来电提醒,弹窗

touchend:手指触摸动作结束

tap:手指触摸后马上离开

longpress:手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发

longtap:手指触摸后,超过350ms再离开(推荐使用longpress事件代替)

transitionend:会在 WXSS transition 或 wx.createAnimation 动画结束后触发

animationstart:会在一个 WXSS animation 动画开始时触发

animationiteration:会在一个 WXSS animation 一次迭代结束时触发

animationend:会在一个 WXSS animation 动画完成时触发

touchforcechange:在支持 3D Touch 的 iPhone 设备,重按时会触发

除上表之外的其他组件自定义事件如无特殊声明都是非冒泡事件,如 form 的submit事件,input 的input事件,scroll-view 的scroll事件

 bind:tap(bindtap) 事件

bind:tap属于点击事件 

 先定义函数

  changenum(e){console.log(e);},

  对函数进行 bind:top事件绑定  点击可以触发该事件

 <view bind:tap="changenum">触发事件</view>

 尝试进行事件的传参

 <view bind:tap="changenum(123)">触发事件</view>

发现报错,看来这种传参方式在微信小程序中是行不通的,接下来介绍微信小程序的传参方式

 <view bind:tap="changenum" data-name="李四">触发事件</view>

    打印e时,发现target下的dataset 可以接受到其参数,可以正常传递参数 

catchtap

  将前面代码中的事件改为 catchtap,发现可以正常执行,这两个的区别就是一个是可以进行事件冒泡的一个是不会进行事件冒泡的 

修改数据 

  changenum(e){console.log(this.data.name);},

 点击后发现可以对其进行获取 开始·尝试修改数据  

  changenum(e){console.log(this.data.name);this.data.name='李四'console.log(this.data.name);},

点击发现数据已经修改,但是视图没有更新,按照vue的说法就是失去了响应式 不要担心有一个微信小程序官方提供的属性 setDate 可完成两个功能 其一是可以 更新数据 其二是可以进行数据的更新

  changenum(e){console.log(this.data.name);this.data.name='李四'this.setData({name:this.data.name})},

成功进行数据的更新

本文章关于微信小程序事件的资料来自

https://www.cnblogs.com/zwh0910/p/13983526.html

http://www.lryc.cn/news/370094.html

相关文章:

  • “探索AIGC市场:腾讯元宝APP加入竞争,大模型产品的未来走向与个人选择“
  • node设置镜像源详细教程
  • 四季变换,制氮机使用注意事项
  • 如何实现办公终端安全
  • 【云岚到家】-day01-项目熟悉-查询区域服务开发
  • Docker面试整理-如何进行Docker镜像的构建和发布?
  • macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)
  • 用户管理与服务器远程管理
  • Pytorch 实现简单的 线性回归 算法
  • Django中配置日志
  • 海外盲盒小程序背后的技术支撑与实现
  • vue问题记录
  • Flutter - Material3适配
  • 一个有趣的c++案例
  • 【python】OpenCV—Background Estimation(15)
  • 【Java毕业设计】基于JavaWeb的旅游论坛管理系统
  • 讲一下v-model的底层实现原理?
  • 大模型基础——从零实现一个Transformer(3)
  • 一二三应用开发平台应用开发示例——概述、应用开发示例简介及创建前后端模块
  • springboot+minio+kkfileview实现文件的在线预览
  • HTML5+CSS3小实例:粘性文字的滚动效果
  • Java 关于抽象 -- Java 语言的抽象类、接口和函数式接口
  • 用 Notepad++ 写 Java 程序
  • malloc brk mmap
  • java多线程相关概念
  • 【html】简单网页模板源码
  • 借助Historian Connector + TDengine,打造工业创新底座
  • 51单片机-实机演示(LED点阵)
  • STM32硬件接口I2C应用(基于MP6050)
  • 基于JSP的贝儿米幼儿教育管理系统