wxs是小程序的一套脚本语言 , 作为过滤器等使用是很方便的 . 但是wxs是小程序的脚本语言 , 和js语法不太一样 , 所以会经常遇到一些坑 , 这里总结一下 .
- wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
- wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
- wxs 函数不能作为组件的事件回调。由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
- WXS中可以调用其它WXS文件,并且只能调用WXS文件,采用 require 函数,引入的文件必须使用相对路径。
- < wxs> 模块只能在定义模块的 WXML 文件中被访问到。使用 < include> 或 < import> 时,< wxs> 模块不会被引入到对应的 WXML 文件中。
- < template> 标签中,只能使用定义该 < template> 的 WXML 文件中定义的 < wxs> 模块。
- wxs不能使用const ! const是JaveScript中的语法 , 并不能在wxs使用 . let也不能使用 , 只能用var .
//错误代码
const format = function(text) {
if (!text) return;
var reg = getRegExp('\\\\n', 'g');
return text.replace(reg, '\n ');
}
module.exports = {
format: format
}
//正确代码
var format = function(text) {
if (!text) return;
var reg = getRegExp('\\\\n', 'g');
return text.replace(reg, '\n ');
}
module.exports = {
format: format
}