小程序 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 |