026 ∞ WXS 模块
本帖最后由 不二如是 于 2018-6-1 11:43 编辑http://xxx.fishc.com/forum/201805/02/171248f4zdsipf6d4qjnjl.png
上一讲我们简单介绍了WXS,本次来看WXS模块。
WXS 代码可以编写在 wxml 文件中的 <wxs> 标签内,或以 .wxs 为后缀名的文件内。
每一个 .wxs 文件和 <wxs> 标签都是一个单独的模块。
每个模块都有自己独立的作用域。
即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见。
一个模块要想对外暴露其内部的私有变量与函数,只能通过 module.exports 实现。
在微信开发者工具里面,右键可以直接创建 .wxs 文件,在其中直接编写 WXS 代码。
示例:
// /pages/comm.wxs
var foo = "'Hi' from comm.wxs";
var bar = function(d) {
return d;
}
module.exports = {
foo: foo,
bar: bar
};
上述例子在 /pages/comm.wxs 的文件里面编写了 WXS 代码。
该 .wxs 文件可以被其他的 .wxs 文件 或 WXML 中的 <wxs> 标签引用。
每个 wxs 模块均有一个内置的 module 对象。
module对象有一个exports属性。
通过该属性,可以对外共享本模块的私有变量与函数。
实操
按照下面的图示,创建文件:
示例:
// /pages/tools.wxs
var foo = "'hello FishC' from tools.wxs";
var bar = function (d) {
return d;
}
module.exports = {
FOO: foo,
bar: bar,
};
module.exports.msg = "some msg";
<wxs src="../pages/tools.wxs" module="tools" />
<view> {{tools.msg}} </view>
<view> {{tools.bar(tools.FOO)}} </view>
require函数
在.wxs模块中引用其他 wxs 文件模块,可以使用 require 函数。
引用的时候,要注意如下几点:
1、只能引用 .wxs 文件模块,且必须使用相对路径。
2、wxs 模块均为单例,wxs 模块在第一次被引用时,会自动初始化为单例对象。多个页面,多个地方,多次引用,使用的都是同一个 wxs 模块对象。
3、如果一个 wxs 模块在定义之后,一直没有被引用,则该模块不会被解析与运行。
修改上面tools.wxs中的代码:
var foo = "'hello FishC-鱼C' from tools.wxs";
var bar = function (d) {
return d;
}
module.exports = {
FOO: foo,
bar: bar,
};
module.exports.msg = "some msg";
在pages中创建logic.wxs:
var tools = require("./tools.wxs");
课后作业
1、填写代码,实现引入wxs文件:
<wxs?="./../tools.wxs" ?="tools" />
答案:
**** Hidden Message *****
如果有收获,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
这位鱼油,如果喜欢小程序,请订阅 专辑☞(传送门)(不喜欢更要订阅{:10_297:} )
http://xxx.fishc.com/forum/201803/21/151715umqz1qoywp11wjbq.gif src
module
页:
[1]