WXS ( WeiXin Script)是小程序独有的一套脚本语言,结合WXML,可以构建出页面的结构。
wxml中无法调用在页面的.js 中定义的函数,但是,wxml中可以调用wxs 中定义的函数。因此,小程序中wxs的典型应用场景就是“过滤器”。
虽然wxs 的语法类似于JavaScript,但是 wxs 和JavaScript是完全不同的两种语言:
1.wxs有自己的数据类型
2.wxs不支持类似于ES6及以上的语法形式
3.wxs遵循CommonJS规范
wxs代码可以编写在wxml文件中的< wxs >标签内,就像Javascript 代码可以编写在 html文件中的< script >标签内一样。
wxml文件中的每个< wxs >< /wxS >标签,必须提供module属性,用来指定当前wxs 的模块名称,方便在wxml中访问模块中的成员:
Wxs代码还可以编写在以.wxS 为后缀名的文件内,就像javascript代码可以编写在以, is 为后缀名的文件中-样。示例代码如下:
在wxml 中引入外联的wxs脚本时,必须为< wxs >标签添加module和src属性,其中:
module用来指定模块的名称
src用来指定要引入的脚本的路径,且必须是相对路径
为了降低wxs (Weixin Script)的学习成本,wXs 语言在设计时借大量鉴了JavaScript的语法。但是本质上,wxs 和JavaScript是完全不同的两种语言!
wxs 典型的应用场景就是“过滤器”,经常配合Mustache语法进行使用,例如:
但是,在 wxs 中定义的函数不能作为组件的事件回调函数。例如,下面的用法是错误的:
隔离性指的是 wxs 的运行环境和其他JavaScript 代码是隔离的。体现在如下两方面:
wxS 不能调用js 中定义的函数
wxS 不能调用小程序提供的API
在iOS设备上,小程序内的WXS会比JavaScript 代码快2~20倍
在android设备上,二者的运行效率无差异