微信小程序模块开发,微信小程序WXS模块示例
本文摘要
WXS 模块 WXS 代码可以编写在 wxml 文件中的标签内,或以.wxs为后缀名的文件内。 模块 每一个.wxs文件和标签都是一个单独的模块。 每个模块都有自己独立的作用域。即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见。 一个模块要想对
WXS 模块
WXS 代码可以编写在 wxml 文件中的
模块
每一个.wxs文件和
每个模块都有自己独立的作用域。即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见。
一个模块要想对外暴露其内部的私有变量与函数,只能通过module.exports实现。
.wxs 文件
在微信开发者工具里面,右键可以直接创建.wxs文件,在其中直接编写 WXS 脚本。
示例代码:
// /pages/comm.wxs
var foo = "'hello world' from comm.wxs";
var bar = function(d) {
return d;
}
module.exports = {
foo: foo,
bar: bar
};
上述例子在/pages/comm.wxs的文件里面编写了 WXS 代码。该.wxs文件可以被其他的.wxs文件 或 WXML 中的
module 对象
每个wxs模块均有一个内置的module对象。
属性
- exports: 通过该属性,可以对外共享本模块的私有变量与函数。
示例代码:
// /pages/tools.wxs
var foo = "'hello world' from tools.wxs";
var bar = function (d) {
return d;
}
module.exports = {
FOO: foo,
bar: bar,
};
module.exports.msg = "some msg";
{{tools.msg}}
{{tools.bar(tools.FOO)}}
页面输出:
some msg
'hello world' from tools.wxs
require 函数
在.wxs模块中引用其他wxs文件模块,可以使用require函数。
引用的时候,要注意如下几点:
- 只能引用.wxs文件模块,且必须使用相对路径。
- wxs模块均为单例,wxs模块在第一次被引用时,会自动初始化为单例对象。多个页面,多个地方,多次引用,使用的都是同一个wxs模块对象。
- 如果一个wxs模块在定义之后,一直没有被引用,则该模块不会被解析与运行。
示例代码:
// /pages/tools.wxs
var foo = "'hello world' 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");
console.log(tools.FOO);
console.log(tools.bar("logic.wxs"));
console.log(tools.msg);
控制台输出:
'hello world' from tools.wxs
logic.wxs
some msg
标签
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| module | String |
当前标签的模块名。必填字段。 |
|
| src | String |
引用 .wxs 文件的相对路径。仅当本标签为单闭合标签或标签的内容为空时有效。 |
module 属性
module 属性是当前
module 属性值的命名必须符合下面两个规则:
- 首字符必须是:字母(a-zA-Z),下划线(_)
- 剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)
示例代码:
var some_msg = "hello world";
module.exports = {
msg : some_msg,
}
{{foo.msg}}
页面输出:
hello world
上面例子声明了一个名字为foo的模块,将some_msg变量暴露出来,供当前页面使用。
src 属性
src 属性可以用来引用其他的wxs文件模块。
引用的时候,要注意如下几点:
- 只能引用.wxs文件模块,且必须使用相对路径。
- wxs模块均为单例,wxs模块在第一次被引用时,会自动初始化为单例对象。多个页面,多个地方,多次引用,使用的都是同一个wxs模块对象。
- 如果一个wxs模块在定义之后,一直没有被引用,则该模块不会被解析与运行。
示例代码:
// /pages/index/index.js
Page({
data: {
msg: "'hello wrold' from js",
}
})
{{some_comms.bar(some_comms.foo)}}
{{some_comms.bar(msg)}}
页面输出:
'hello world' from comm.wxs
'hello wrold' from js
上述例子在文件/page/index/index.wxml中通过
注意
-
模块只能在定义模块的 WXML 文件中被访问到。使用 或 时, 模块不会被引入到对应的 WXML 文件中。 -
标签中,只能使用定义该的 WXML 文件中定义的
模块。
第二部分:如何开通一个小商店
相关文章
****更多行业产品开发方案,请关注 加速度JSUDO***
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
加速度JSUDO是一家企业级数字化解决方案提供商,专注于软件开发、网络营销、数字化转型咨询及云计算服务。核心业务包括定制化ERP/CRM系统、快速应用开发、大数据分析及物联网(IoT)解决方案,助力企业提升效率与智能化水平。服务覆盖制造业、零售、物流等多行业,致力于通过技术创新推动客户数字化转型。










