微信小程序-WXS的作用和使用

简介: WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

官方文档: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>


页面根本就没显示数据了很显然是不能这么做的:

2105804-20230414001546717-910955620.png


然后这个时候就需要利用到本章讲解的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>


目录
相关文章
|
小程序 前端开发 网络协议
微信小程序开发之后台数据交互及wxs应用
微信小程序开发之后台数据交互及wxs应用
147 0
|
小程序 JavaScript 前端开发
微信小程序前后端交互与WXS的应用
微信小程序前后端交互与WXS的应用
159 0
|
存储 小程序 前端开发
微信小程序数据交互------WXS的使用
微信小程序数据交互------WXS的使用
137 0
|
7月前
|
JavaScript 小程序 前端开发
【微信小程序】-- WXS 脚本(二十九)
【微信小程序】-- WXS 脚本(二十九)
|
7月前
|
小程序 JavaScript
微信小程序:如何在{{}}中使用函数?WXML+WXS
微信小程序:如何在{{}}中使用函数?WXML+WXS
635 0
|
存储 小程序 前端开发
小程序之后台数据动态交互及WXS的使用 (5)
小程序之后台数据动态交互及WXS的使用 (5)
|
小程序 前端开发 JavaScript
小程序实现后台数据交互及WXS的使用
小程序实现后台数据交互及WXS的使用
62 0
|
存储 小程序 前端开发
无纸化办公小程序数据交互、wxs的使用
无纸化办公小程序数据交互、wxs的使用
88 0
|
小程序 JavaScript API
小程序 wxs文件
小程序 wxs文件
155 0
|
小程序 Java 数据库连接
微信小程序之会议OA首页数据交互,会议状态,会议人数转换,会议室交互,WXS的使用
微信小程序之会议OA首页数据交互,会议状态,会议人数转换,会议室交互,WXS的使用
73 0