- WXS - WeiXin Script -
微信自己的脚本系统;类似 JavaScript
- WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致
- 通常作为过滤器使用:对渲染的数据进行额外处理,如格式定制、大小写转换
- 和 Vue 的计算属性功能差不多
- 采用 ES5 的语法,据说要被淘汰了。。。
模块
- WXS 代码可以编写在 wxml 文件中的 <wxs> 标签内,或以 .wxs 为后缀名的文件内
- 每一个 .wxs 文件和 <wxs> 标签都是一个单独的模块
- 每个模块都有自己独立的作用域。即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见
- 一个模块要想对外暴露其内部的私有变量与函数,只能通过 module.exports 实现
更多用来封装方法|函数:对数据2次处理,避免数据污染
一个模块只完成一个逻辑
模块名使用语义化,其中的方法可以任性
<wxs>
- 用于定义一个模块,包括 模块名称、模块内容、模块暴露的接口
- 也可以使用 src 引入其它模块文件
- 直接结构中编辑;仅适用当前页面
[] 将变量 str 转换大写
<wxs module="toUpperCase">
module.exports.fn = function (str) {
return str.toUpperCase()
}
</wxs>
<view>{{toUpperCase.fn(msg)}}</view>
.wxs
- 以文件的形式提供业务逻辑
- 文件名就是模块名
- 后缀名为 .wxs
- 更适合代码共享
[] 将变量 str 转换大写
// upperCase.wxs
module.exports.fn = function (str) {
return str.toUpperCase()
}
在结构中使用属性 src 引入并指定模块名 module
<wxs src="../../utils/upperCase.wxs" module="upperCase"></wxs>
使用
<view>{{upperCase.fn(msg)}}</view>