微信小程序-WXS的作用和使用
1.小程序开发概述2.创建第一个小程序3.微信小程序app.json文件4.微信小程序-sitemap.json文件5.微信小程序app.js文件6.微信小程序app.wxss文件7.微信小程序-project.config.json文件8.微信小程序-页面.json文件9.微信小程序-页面.js文件10.微信小程序-组件创建和使用11.微信小程序-组件-.json文件12.微信小程序-组件-.js文件13.微信小程序-WXSS学什么14.微信小程序-WXSS的书写格式15.微信小程序-新增RPX响应式单位16.微信小程序-什么是WXML17.微信小程序-WXML数据绑定18.微信小程序-WXML条件渲染19.微信小程序-WXML的hidden属性20.微信小程序-WXML列表渲染21.微信小程序-WXML列表渲染Key22.微信小程序-WXML包装元素
23.微信小程序-WXS的作用和使用
24.微信小程序-WXS独立文件25.微信小程序-WXS支持的语法26.微信小程序-小程序事件绑定27.微信小程序-小程序事件冒泡和事件捕获28.微信小程序-事件传递数据29.微信小程序-data和mark30.微信小程序-touches和changedTouches31.微信小程序-案例练习32.微信小程序-view组件33.微信小程序-text组件34.微信小程序-icon组件35.微信小程序-button组件36.微信小程序-image组件37.微信小程序-scrollview38.微信小程序-image组件-选择相册资源案例39.微信小程序-自定义组件40.微信小程序-自定义组件样式隔离41.微信小程序-自定义组件外部样式42.微信小程序-传递数据父传子43.微信小程序-传递数据子传父44.微信小程序-页面访问组件数据和方法45.微信小程序-组件通讯练习46.微信小程序-单个插槽47.微信小程序-多个插槽-具名插槽48.微信小程序-behaviors49.微信小程序-双线程渲染模型50.微信小程序-页面生命周期51.微信小程序-页面生命周期方法52.微信小程序-组件生命周期方法53.微信小程序-应用程序生命周期方法54.微信小程序-页面跳转Tabbar55.微信小程序-页面跳转navigator组件56.微信小程序-页面跳转wxAPI57.微信小程序-页面跳转数据传递58.微信小程序-常用弹窗59.微信小程序-Storage60.微信小程序-获取用户位置官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/
什么是 WXS
WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML
,可以构建出页面的结构。
!> 注意事项:
- WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。
- WXS 的运行环境和其他 JavaScript 代码是隔离的,WXS 中不能调用其他 JavaScript 文件中定义的函数,也不能调用小程序提供的API。
- 由于运行环境的差异,在 iOS 设备上小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
为什么需要 WXS(WXS 用来干什么)
- 小程序的 Mustache 语法只能直接绑定数据,或者写一些简单的表达式
- 而不能直接调用函数获取数据,这就导致了我们无法对一些数据进行复杂处理之后再绑定
例如:我们做一个短视频小程序,我们拿到了服务器返回的视频时长,这个时长是xxxx秒,我们希望展示的时候显示 xx分钟:xx秒,那么我们就需要对这个时长进行复杂的处理之后再绑定,但 Mustache 语法默认又获取不到函数的返回值,此时就需要用到 WXS
首先来看通过 Mustache 语法的方式来试试看,假设我们有一个 count,我们想让这个 count 大于等于1000后面以k
的形式来进行展示,我们就有了如下的代码:
index.wxml:
<view>
{{ count >= 1000 ? count / 1000 + "k" : count }}
</view>
index.js:
data: {
count: 1000
},
那么我们能否将这个复杂的代码通过一个方法进行封装起来然后直接调用方法得到是否会更好呢,所以我抱着这样的好奇思想去尝试了一下:
index.js:
formartData: function(){
return count >= 1000 ? count / 1000 + 'k' : count;
}
index.wxml:
<view>
{{ formartData() }}
</view>
页面根本就没显示数据了很显然是不能这么做的:
然后这个时候就需要利用到本章讲解的WXS来解决该问题了,至于什么是WXS,上方已经详细概述过了,废话不多说直接上代码:
<view>
{{ tool.formartData() }}
</view>
<wxs module="tool">
function formartData () {
var count = 1000;
console.log(count)
return count >= 1000 ? count / 1000 + 'k' : count;
}
module.exports.formartData = formartData;
</wxs>
!> 不支持 ES6 语法
当然我们的 count 变量,可以通过方法传参的方式进行通行,我们官方文档当中说我们的WXS是不能调用其他JS的函数等变量,我们就可以利用这种方式去访问JS文件中的内容到达可以处理JS文件当中的内容变了等信息:
<view>
{{ tool.formartData(count) }}
</view>
<wxs module="tool">
function formartData (count) {
return count >= 1000 ? count / 1000 + 'k' : count;
}
module.exports.formartData = formartData;
</wxs>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具