wxs脚本
与js相似的另一种语言
- wxs有自己的数据类型:number,string,bollean,object,function,array,date,regexp
- wxs不支持ES6及以上的语法形式(如let,const关键字,解构赋值,展开运算符,箭头函数,对象属性简写,ect等),可以使用var定义变量,普通函数等ES5语法
- wxs遵循CommonJS规范,有module对象,require()函数,module。exports对象等。
内嵌wxs脚本
wxs代码可卸载wxml文件中的标签内,标签必须提供module属性指定当前wxs模块名称
例如:将在wxml中不能直接使用的js的indexOf方法放在wxs中引用
<!-- 显示1 -->
<view>{{m1.wxIndexOf("123","2")}}</view>
<!-- 显示-1 -->
<view>{{m1.wxIndexOf("123","4")}}</view>
<wxs module="m1">
module.exports.wxIndexOf = function (str1,str2) {
return str1.indexOf(str2)
}
</wxs>
外联wxs脚本
创建.wxs文件,在内编写代码如:
function wxIndexOf(str1,str2) {
return str1.indexOf(str2)
}
module.exports = {
wxIndexOf: wxIndexOf
}
在wxml文件中的标签里用相对路径引入该.wxs文件,使用里面的方法
<!-- 显示1 -->
<view>{{m2.wxIndexOf("123","2")}}</view>
<!-- 显示-1 -->
<view>{{m2.wxIndexOf("123","4")}}</view>
<wxs src="../../utils/tools.wxs" module="m2"></wxs>
特点
- wxs中的方法不能作为组件的事件回调
<!-- 错误写法 -->
<button bindtap="m2.wxIndexOf("123","2")">按钮</button>
- wxs的运行环境和其他js代码是隔离的,wxs不能调用js中定义的函数,也不能调用小程序提供的api
- 优点:在ios设备商小程序内wxs比js代码运行快(在安卓设备商无差异)