当前位置: 首页 > 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

相关文章:

  • 讲透计算机网络知识(实战篇)01——计算机网络和协议
  • 企业级开源项目,云缓存解决方案:CacheCloud
  • 苹果WWDC24一文总结,携手OpenAi,开启Ai新篇章
  • 操作系统复习-Linux的文件系统
  • 第8章 函数
  • C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)
  • 细说ARM MCU的串口接收数据的实现过程
  • 3D感知视觉表示与模型分析:深入探究视觉基础模型的三维意识
  • 【介绍下Pandas,什么是Pandas?】
  • VitePress做一个自己的知识博客
  • OpenGauss常操作
  • 通过 urllib 结合代理IP下载文件实现Python爬虫
  • 数组循环form表单对象校验
  • Project 项目管理软件真的好用吗?
  • 为什么PPT录制没有声音 电脑ppt录屏没有声音怎么办
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • export和import的用法总结
  • Java面向对象及其三大特征
  • Linux Process Manage
  • Linux中的硬链接与软链接
  • magento 货币换算
  • Map集合、散列表、红黑树介绍
  • Python利用正则抓取网页内容保存到本地
  • Python实现BT种子转化为磁力链接【实战】
  • tweak 支持第三方库
  • Vue.js源码(2):初探List Rendering
  • 官方解决所有 npm 全局安装权限问题
  • 微信公众号开发小记——5.python微信红包
  • 小试R空间处理新库sf
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​如何在iOS手机上查看应用日志
  • #vue3 实现前端下载excel文件模板功能
  • #Z2294. 打印树的直径
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (done) Go 语言:三种多文件协作方式
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (六)Hibernate的二级缓存
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (七)Knockout 创建自定义绑定
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)模仿学习-完成后台管理页面查询
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)面试需要掌握的技巧
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core + vue 搭建前后端分离的框架
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法