【微信小程序】一文带你了解数据绑定、事件绑定以及事件传参、数据同步

news2024/11/17 21:18:10

🐚作者简介:苏凉(专注于网络爬虫,数据分析,正在学习前端的路上)
🐳博客主页:苏凉.py的博客
🌐系列专栏:小程序开发基础教程
👑名言警句:海阔凭鱼跃,天高任鸟飞。
📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
👉关注✨点赞👍收藏📂

文章目录

    • 数据绑定
      • 基本原则
      • 在data中定义数据
      • Mustache语法
      • Mustache语法的应用
        • 绑定内容
        • 绑定属性
        • 运算(三元运算、算术运算等)
          • 三元运算
          • 算数运算
    • 事件绑定
      • 什么是事件?
      • 常用事件
      • 事件对象属性
        • target与currentTarget的区别
    • bindtap语法格式
      • 在事件处理函数中为data赋值
      • 事件传参
        • 查看参数
    • bindinput语法格式
      • 实现文本框与data之间的数据同步

数据绑定

基本原则

  1. 在data中定义数据
  2. 在WXML中使用数据

在data中定义数据

在页面对应的.js 文件中,把数据定义到data对象中即可。
在这里插入图片描述

Mustache语法

把data中的数据绑定到页面中渲染,使用 Mustache语法(双大括号) 将变量包起来即可。

语法:<view>{{定义的数据名称}}</view>

在这里插入图片描述

Mustache语法的应用

绑定内容

绑定内容即为文本的绑定,就如上述例子中将一个字符串绑定到view的文本节点中。

绑定属性

绑定属性即将一个数据绑定在一个标签的属性节点中。
如:在页面js文件的data中添加一个src数据。
在这里插入图片描述
在页面wxml文件中使用Mustache语法将其绑定在image标签的属性节点中。
在这里插入图片描述

运算(三元运算、算术运算等)

在小程序的编译中也可以进行运算操作。

三元运算

如:
在页面js文件中添加data数据。
在这里插入图片描述
在页面.wxml中绑定该数据,并进行判断.

在这里插入图片描述

算数运算

如:
在页面js文件中的data中添加数据。
在这里插入图片描述
在页面wxml中进行数据绑定,并进行计算。
在这里插入图片描述

事件绑定

什么是事件?

事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。与html类似,相当于用户与小程序的交互。

常用事件

事件用法说明
tapbindtap/bind:tap手指触摸后马上离开,相当于html中的click事件
inputbindinput/bind:input文本框的输入事件
changebindchange/bind:change状态改变时触发

事件对象属性

当事件回调触发的时候,会收到一个事件对象event(与js中的事件对象类似),它的详细属性如下表所示:

属性类型说明
typeString事件类型
timeStampInteger页面打开到触发事件所经过的毫秒数
targetobject触发事件的组件的一些属性值集合
currentTargetobject当前组件的一些属性值集合
detailobject额外的信息
touchesArray触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouchesArray触摸事件,当前变化的触摸点信息的数组

target与currentTarget的区别

event.target返回的是触发该事件的源头组件,而currentTarget则返回的是当前事件所绑定的源头组件。
如:
在这里插入图片描述
给view绑定了单击事件,在该事件下有一个按钮组件,当我们单击按钮时,event.target返回的就是这个按钮组件。而event.currentTarget返回的就是view这个绑定事件的源头组件。因此,常用到的是target属性而非currentTarget属性。

bindtap语法格式

在小程序中,不存在HTML中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。

  1. 通过bindtap给组件绑定tap触摸事件。
    如下图所示:
    在页面wxml文件中绑定触摸事件
    在这里插入图片描述

  2. 在页面js中定义相应的事件处理函数,事件属性通过传入一个形参来接收。通常为event。
    在这里插入图片描述
    当点击按钮时,控制台便会输出。
    在这里插入图片描述

在事件处理函数中为data赋值

使用this.setData()方法可以修改data中的数据。

  1. 在data中定义数据。
    在这里插入图片描述

  2. 为事件响应函数添加this.setData方法,并修改其数值。
    在这里插入图片描述

  3. 在wxml文件中绑定数据
    在这里插入图片描述

实现效果:
在这里插入图片描述

事件传参

小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。如:

<button type="primary" bindtap="butnTap(3)">点击按钮+3</button>

这里并不能为butnTap事件函数传递参数,而是将butnTap(3)作为事件函数名。

为事件传递参数时,使用data-参数名="{{参数值}"}来传递参数。如:

<button type="primary" bindtap="butntTap" data-num="{{3}}">点击按钮+3</button>

查看参数

通过event.target.dataset.参数名可查看我们设置的参数。

在这里插入图片描述
通过该参数也可修改data中的数值。
在这里插入图片描述
此时点击按钮就自增加3
在这里插入图片描述

bindinput语法格式

  1. 通过bindinput,可以为文本框绑定输入事件
 <input bindinput="inputBd" ></input>
  1. 在页面js文件中定义事件处理函数。
  2. 通过even.detail.value来获取文本框中的内容。在这里插入图片描述

实现文本框与data之间的数据同步

实现步骤:

  • 定义数据
    在页面js文件中定义文本数据
    在这里插入图片描述

  • 渲染结构
    设置value默认值。

<input bindinput="inputBd" value="{{text}}"></input>
  • 美化样式
    将文本框美化一下
input{
    border: 1px solid blue;
    border-radius: 5px;
}
  • 绑定input 事件处理函数
 inputBd(event){
      // console.log(event.detail.value);
      this.setData({
          text:event.detail.value
      })
  }

输入文本,此时data中的text也随之改变。
在这里插入图片描述
到这里本节内容就结束啦,下期带大家了解微信小程序中的条件渲染和列表渲染。欢迎订阅本专栏,持续更新中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目完成后的打包流程(超级详细)

* 打包&#xff1a; * 将多个文件压缩合并成一个文件 * 语法降级 * less sass ts 语法解析, 解析成css * .... * 打包后&#xff0c;可以生成&#xff0c;浏览器能够直接运行的网页 > 就是需要上线的源码&#xff01; 最简单的打包流程&#xff1a; 首先我们项目…

vue项目实现前端预览word和pdf格式文件

最近做vue项目遇到一个需求&#xff0c;就是前端实现上传word或pdf文件后&#xff0c;后端返回文件对应的文件流&#xff0c;前端需要在页面上展示出来。word预览简单一些&#xff0c;pdf预览我试过pdfjs,vue-pdf总是报各种奇奇怪怪的bug,但最终总算解决了问题&#xff0c;先看…

HttpServletResponse 类

a)HttpServletResponse 类的作用 HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来&#xff0c;Tomcat 服务器都会创建一个 Response 对象传 递给 Servlet 程序去使用。HttpServletRequest 表示请求过来的信息&#xff0c;HttpServletResponse 表示所有响应…

解决TypeError: Cannot read properties of null (reading ‘xxx‘)的错误

文章目录1. 文章目录2. 分析问题3. 解决错误4. 问题总结1. 文章目录 今天测试小姐姐&#xff0c;在测试某页面时&#xff0c;报出如下图的错误&#xff1a; TypeError: Cannot read properties of null (reading type)at w (http://...xxx.../assets/index.a9f96e7f.js:1052:19…

前端基础,超全html常用标签大汇总

<html></html>标签&#xff0c;整个html文件都会放在html标签里面 <head></head>标签&#xff0c;表示网页的头部信息&#xff0c;一般是为浏览器提供对应的网站需要的相关信息&#xff0c;浏览器中是不会显示的&#xff1b;比如&#xff1a;标题titl…

vue中PC端使用高德地图 -- 实现搜索定位、地址标记、弹窗显示定位详情

PC端高德地图使用步骤&#xff1a; 1、注册并登录高德开放平台获取 2、安装高德依赖&#xff08;amap-jsapi-loader&#xff09; 3、初始化地图 4、首次打开地图获取当前定位并标记 5、根据已有地址自动定位到指定地址并标记 6、新增、清除标记及自定义信息窗体 7、鼠标点击地…

iframe嵌套其它网站页面及相关知识点详解

在开发过程中会遇到需要 在一个页面中嵌套另外一个页面&#xff0c;就要使用到框架 标签&#xff0c;然后指定src就可以了。 基本语法&#xff1a; <iframe src"需要展示的网站页面的URL"></iframe>用法举例&#xff1a; <!DOCTYPE html> <h…

css ::before ::after 添加伪元素不生效

需求&#xff1a;想用伪元素来写蓝色小标 HTML结构&#xff1a; <div> <span class"course-configname">教程配置</span> </div> 1.一开始这样写&#xff1a;&#xff08;不生效&#xff09; .course-configname::before{content: ;width…

vue3.0-axios拦截器、proxy跨域代理

目录 1. vue-cli 1&#xff09;vue-cli 2&#xff09;安装vue-cli ①解决Windows PowerShell不识别vue命令的问题 3&#xff09;创建项目 4&#xff09;基于vue ui创建vue项目 5&#xff09;基于命令行创建vue项目 2. 组件库 1&#xff09;vue组件库 2&#xff09;v…

Three.js - 透视相机(PerspectiveCamera)(三)

简介 在three.js中&#xff0c;摄像机的作用就是不断的拍摄我们创建好的场景&#xff0c;然后通过渲染器渲染到屏幕中。想通过不同的角度观看场景&#xff0c;就需要修改摄像机的位置来拍摄场景。本文详细介绍的是透视相机&#xff08;PerspectiveCamera&#xff09; 它是用来…

React Hooks(钩子函数)

React Hooks什么是Hooks?UseState()useReducer()useContext()useEffect()useRef()自定义钩子函数React Hooks中可以对性能进行优化的函数useMemo()useCallback()useMemo()和useCallback()的区别什么是Hooks? 首先&#xff1a;React的组件创建方式&#xff0c;一种是类组件&a…

划水日常(16.5)关于出版图书有偿征集书名 ~

关于摸鱼日常已经断更两个月了&#xff0c;前段时间一直忙在项目上&#xff0c;再加上搭了个网站&#xff0c;你要说有事儿吧&#xff0c;其实事儿也不多。你要说没事儿吧&#xff0c;我就是不更。原因其实很简单&#xff0c;我懒&#xff01; 可直接跳过目录一&#xff0c;直至…

web自动化测试入门篇02——selenium安装教程

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

授予渔,从0开始搭建一个自己想要的网页

文章目录视频展示&#xff1a;张娜英网页一.开始阶段1.1考虑出基本的架构1.2填充思路1.3前提准备二.实现阶段2.1导航栏实现2.2点击切换视频2.3 左右特效2.4照片墙2.5视频轮播2.6底部2.7点击切换全局变量3.总结全部代码&#xff1a;☀️作者简介&#xff1a;大家好我是言不及行y…

【实战】React 必会第三方插件 —— Cron 表达式生成器(qnn-react-cron)

文章目录一、引子二、配置使用1.安装2.使用&#xff08;1&#xff09;直接调用&#xff08;2&#xff09;赋值到表单&#xff08;Form&#xff09;&#xff08;3&#xff09;自定义功能按钮&#xff08;4&#xff09;隐藏指定 Tab&#xff08;5&#xff09;其他三、常见问题及解…

【JavaScript 进阶教程】数组新增遍历方法的说明与使用

文章已收录专栏&#xff1a;JavaScript 进阶教程 作者&#xff1a;卡卡西最近怎么样 文章导读&#xff1a; 欢迎来到 JavaScript 进阶的学习&#xff0c;ES5 对 JS 的数组&#xff0c;字符串等内置对象的方法均有扩充。这篇文章我们要掌握的是新增的几个 Array 内置对象的常用迭…

【Web理论篇】Web应用程序安全与风险

目录&#x1f332;1.Web应用程序的发展历程&#x1f342;1.1 Web应用程序的常见功能&#x1f342;1.2 Web应用程序的优点&#x1f332;2.Web安全&#x1f342;2.1Web应用程序常见漏洞&#x1f342;2.2未对用户输入做过滤&#x1f342;2.3 造成这些漏洞的原因是什么呢&#xff1…

【实战分享】js生成word(docx),以及将word转成pdf解决方案分享

本文将记录如何用js生成word文件&#xff0c;并在node服务器端将word转换成pdf。记录的代码均是在真实业务场景中使用成功的代码&#xff0c;没有记录中间踩坑的过程。想直接抄答案的家人们可以跳转到1.2 程序编写部分&#xff0c;最终效果图可在1.2 程序编写部分中4. 效果展示…

【解决前端报错】Bad Request: Required request parameter ‘id‘ for method parameter type Long is not present

后端查询列表接口返回的对象里包含Long id,前端获取到这个id,执行通过Long id删除操作。这时删除操作报错400&#xff0c;大意是没找着Long类型的id. swagger相关接口截图&#xff1a; Long类型的在swagger显示是integer64 &#xff0c; integer是integer32. 这是前端请求后…

微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!

前言 网上的教程都是让你写页面 “引导” 右上角三个点里,让用户自己去浏览器打开,其实这样用户体验并不好。 本文实现了 最新微信公众号 H5 网页(微信内置浏览器中),预览下载 office 文件,安卓和苹果全都支持! 您可以直接复制代码,移植到自己项目中去,任何前端项目(…