不二如是 发表于 2018-6-1 11:43:36

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

ShmilyLee 发表于 2022-6-2 14:10:12

src
module
页: [1]
查看完整版本: 026 ∞ WXS 模块