一. 官方文档给出:
- WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。
- WXS 的运行环境和其他 JavaScript 代码是隔离的,WXS 中不能调用其他 JavaScript 文件中定义的函数,也不能调用小程序提供的API。
- WXS 函数不能作为组件的事件回调。
- 由于运行环境的差异,在 iOS 设备上小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
二. 使用场景
例如在wxml中渲染列表时,需要格式化每个列表的人数显示问题,或者格式化时间显示问题,我们可以不用在js文件中格式化数据,而是通过在wxs中编写对应的转换方法,在wxml中调用即可。
三. 使用方法
- 方法一,wxml中写<wxs></wxs>
<wxs module="m1"> var msg = "hello world"; module.exports.message = msg; </wxs> //使用 <view> {{m1.message}} </view>
- 方法二,创建一个后缀名为wxs的public.wxs文件
// 判断字符串是否为空 module.exports.formatePrice = function(price) { if(typeof price == "undefined" || price == null || price == "" || price == "0") { return "免费" } return "¥" + price } // 使用 <wxs src="./../../utils/public.wxs" module="public"></wxs> <view class="price">{{public.formatePrice(helpData.price)}}</view>