5-微信小程序语法参考

news/2024/7/20 1:27:35 标签: 微信小程序, 小程序

1. 数据绑定

官网传送门
WXML 中的动态数据均来自对应 Page 的 data。

数据绑定使用 Mustache 语法(双大括号)将变量包起来
在这里插入图片描述

ts

Page({
	data: {
		info: 'hello wechart!',
		msgList: [{ msg: 'hello' }, { msg: 'wechart' }]
	},
})

WXML

<view class="view-container">
	<view>
		<text>{{info}}</text>
	</view>
</view>

Mustache语法应用场景

  • 绑定内容
  • 绑定属性
  • 运算(三元运算、算术运算)
  • 逻辑判断
  • 字符串运算
  • 数据路径运算

注:小程序>微信小程序数据绑定与vue2的语法相同

2. 事件绑定

官网传送门
常用事件

类型绑定方式事件描述
tapbindtap或bind:tap触摸之后马上离开,类似html中click事件
inputbindinput或bind:input文本框输入事件
changebindchange或bind:change状态改变时触发事件

事件回调对象event属性列表

属性类型说明
typeString事件类型
timeStampinteger页面打开到触发事件经过的毫秒数
targetObject触发事件的组件的属性值集合
currentTargetObject当前组件的属性值集合
detailObject额外的信息
tochesArray触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTochesArray触摸事件,当前变化的触摸点信息的数组

bindtap使用

在这里插入图片描述

WXML

	<view>
		<button bind:tap="btnTapHandler">Click</button>
	</view>

ts

Page({
	btnTapHandler(event: WechatMiniprogram.BaseEvent){
		console.log(event)
	}
})

事件传参&数据同步

数据同步
例:点击add,count自增1
在这里插入图片描述
WXML

	<view>
		<text>{{count}}</text>
	</view>
	<view>
		<button bind:tap="addCount">Add</button>
	</view>

ts

Page({
	data: {
		count: 0
	},
	addCount() {
		this.setData({
			count: this.data.count + 1
		})
	},
})

事件传参
通过属性data-info给函数传递参数, e.target.dataset.info获取参数
例:点击add+2,count自增2
在这里插入图片描述
WXML

	<view>
		<text>{{count}}</text>
	</view>
	<view>
		<button bind:tap="addDoubleCount" data-info="{{2}}">Add+2</button>
	</view>

ts

Page({
	data: {
		count: 0
	},
	addDoubleCount(e: WechatMiniprogram.BaseEvent) {
		this.setData({
			count: this.data.count + e.target.dataset.info
		})
	},
})

bindInput

我们来做一个输入框,输入的时候改变info的内容
在这里插入图片描述

WXML

	<view>
		<text>{{info}}</text>
	</view>
	<view>
		<input bindinput="inputHandler" />
	</view>

ts

Page({
	data: {
		info: 'hello wechart!'
	},
	inputHandler(e: WechatMiniprogram.CustomEvent) {
		this.setData({
			info: e.detail.value
		})
	},
})

3. 条件渲染

官网入口
点击开关block或者unblock
在这里插入图片描述

WXML

	<view>
		<switch checked="{{checked}}" bindchange="switchChange"/>
	</view>
	<view wx:if="{{checked}}">
		Block
	</view>
	<view wx:else>
		UnBlock
	</view>

ts

Page({
	data: {
		checked: true,
	},
	switchChange(e: WechatMiniprogram.CustomEvent) {
		this.setData({
			checked: e.detail.value
		})
	},
})

4. 列表渲染

官网传送门

在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。

默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item
在这里插入图片描述

	<view wx:for="{{msgList}}">
		{{index}}: {{item.msg}}
	</view>
Page({
  data: {
		msgList: [{ msg: 'hello' }, { msg: 'wechart' }]
  }
})

使用 wx:for-item 可以指定数组当前元素的变量名,

使用 wx:for-index 可以指定数组当前下标的变量名:

<view wx:for="{{msgList}}" wx:for-index="idx" wx:for-item="itemName">
  {{idx}}: {{itemName.message}}
</view>

5. 数据请求

小程序官网 开发管理 ->开发配置 ->服务器域名配置合法域名
在这里插入图片描述
可以在开发工具详情查看配置的域名
在这里插入图片描述

get

		wx.request({
			url: 'https://www.***.cn/api/get',
			method: 'GET',
			data: {
				name: 'zs',
			},
			success: (res) => {
				console.log(res);
			}
		})

post

		wx.request({
			url: 'https://www.***.cn/api/post',
			method: 'POST',
			data: {
				name: 'zs',
				age: 22
			},
			success: (res) => {
				console.log(res);
			}
		})

http://www.niftyadmin.cn/n/5332400.html

相关文章

【面试突击】数据库面试实战-SQL 优化(加更)

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

红队打靶练习:NULLBYTE: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 1、dirsearch 2、gobuster WEB web信息收集 图片信息收集 hydra爆破 sql注入 闭合 爆库 爆表 爆列 爆字段 hashcat SSH登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan…

tinyxml2

使用tinyxml2&#xff0c;得知道一些xml基础 xml tutorial--菜鸟 tinyxml2类对象 链接 结构 XMLNode 什么是节点 节点&#xff1a;元素、声明、文本、注释等。 XMLDocument xml文档(文件)对象。 作用&#xff1a; 加载xml文件&#xff0c; tinyxml2作用 1&#xff0c;…

面试常见的场景设计题

介绍常见的场景设计题思路&#xff0c;答案不唯一&#xff0c;自由发挥 文章目录 什么是海量数据?1.海量日志数据&#xff0c;统计出某日访问[xx]次数最多的那个IP&#xff1f;2.有一个1G大小的一个文件&#xff0c;里面每一行是一个词&#xff0c;词的大小不超过16字节&#…

Linux系统三剑客之grep和正则表达式的介绍(一)

1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 &#xff1f; 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用&#xff1a; 语法&#xff1a; 说明&#xff1a; 选项&#xff1a;options 重点 实例 3.后面的下次再更新。 …

【项目搭建一】SpringBoot引入logback

添加依赖 springBoot中内置了logback&#xff0c;引入logback&#xff0c;只需要在pom文件中添加以下依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId> </…

近千笔融资,超百亿美元:一览 2023 Web3 一级市场晴雨表

撰文&#xff1a;Carl&#xff0c;Techub News 原文链接&#xff1a;近千笔融资&#xff0c;超百亿美元&#xff1a;一览 2023 Web3 一级市场晴雨表 2023年&#xff0c;是熊市向「牛市」过渡的一年&#xff0c;在前 9 个月的熊市里&#xff0c;Web3 行业的融资持续下滑&#…

CMake+QT+大漠插件的桌面应用开发(QThread)

文章目录 CMakeQT大漠插件的桌面应用开发&#xff08;QThread&#xff09;简介环境项目结构配置编译环境代码 CMakeQT大漠插件的桌面应用开发&#xff08;QThread&#xff09; 简介 在CMakeQT大漠插件的桌面应用开发中已经给出了QT配合大漠插件开发桌面应用的样例 不过由于主…