小程序 WXS 总结
语法对比
wxs
不支持ES6
语法,其标准基本是参考ES5
标准,在以下细节之处有些许出入:
变量名
wxs
中要求变量名只允许包含字母、数字、下划线,且不能以数字开头ES5
中变量名允许包含字母、数字、下划线、美元符,同样不能以数字开头注释
wxs
和ES5
都支持单行注释及多行注释 ,另外,wxs
还支持结尾注释1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<!-- wxml -->
<wxs module="sample">
// 方法一:单行注释
/*
方法二:多行注释
*/
/*
方法三:结尾注释。即从 /* 开始往后的所有 WXS 代码均被注释
var a = 1;
var b = 2;
var c = "fake";
</wxs>
模块
wxs
代码可以写在<wxs>
标签内,或以.wxs
为后缀名的文件内每个
.wxs
文件和<wxs>
标签都是一个单独的模块,有自己独立的作用域;模块内的变量和函数对其他模块不可见,但可通过module.exports
暴露内部数据
wxs 标签
wxs
标签包含两个属性:module
和src
;module
属性表示模块名,必填;src
属性表示引用的.wxs
文件的相对路径,
module
属性必填,表示模块名,其规则与变量命名规则一致,如果在同一wxml
中存在同名,则后者覆盖前者
src
属性表示引用的其它.wxs
文件的相对路径,仅在wxs
标签为单闭合标签或标签内容为空时有效
1 | <!--wxml--> |
module 对象
每个
wxs
模块均有一个内置的module
对象,该对象有个exports
属性,可以对外共享模块内的私有变量和函数
1 | // /pages/tools.wxs |
1 | <!-- page/index/index.wxml --> |
模块引用
若想在
.wxs
模块中引用其他.wxs
模块,可以通过require
函数实现;require
函数还可以引用.js
模块引用时需注意使用相对路径,不能使用绝对路径
wxs
模块均为单例,在第一次被引用时会自动初始化为单例对象;多个页面,多个地方,多次引用,使用的都是同一个wxs
模块对象如果
wxs
模块在定义后未被引用,则该模块不会被解析运行
<wxs>
模块只能在定义该模块的WXML
文件访问,如果该WXML
文件被其他WXML
文件引用,则这个<wxs>
模块不会被引入到对应的WXML
文件中;同理在<template>
标签中只能使用其被定义所在WXML
文件中定义的<wxs>
模块
1 | // /pages/logic.wxs |