导航
当前位置:首页>>小程序

微信小程序WXS模块的使用介绍

2023-12-02 围观 : 0次

WXS是微信小程序的一种脚本语言,其代码既可以编写在WXML文件中的<wxs>标签内,也可以写在.wxs为后缀名的文件内,每一个<wxs>标签和.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 中的 <wxs> 标签引用。

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”;

<!– page/index/index.wxml –>

<wxs src=”./../tools.wxs” module=”tools” />

<view> {{tools.msg}} </view>

<view> {{tools.bar(tools.FOO)}} </view>

页面输出:

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);

<!– /page/index/index.wxml –>

<wxs src=”./../logic.wxs” module=”logic” />

控制台输出:

‘hello world’ from tools.wxs

logic.wxs

some msg

<wxs> 标签

module 属性

module 属性是当前 <wxs> 标签的模块名。在单个 wxml 文件内,建议其值唯一。有重复模块名则按照先后顺序覆盖(后者覆盖前者)。不同文件之间的 wxs 模块名不会相互覆盖。

module 属性值的命名必须符合下面两个规则:

首字符必须是:字母(a-zA-Z),下划线(_)

剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)

示例代码:

<!–wxml–>

<wxs module=”foo”>

var some_msg = “hello world”;

module.exports = {

msg : some_msg,

}

</wxs>

<view> {{foo.msg}} </view>

页面输出:

hello world

上面例子声明了一个名字为 foo 的模块,将 some_msg 变量暴露出来,供当前页面使用。

src 属性

src 属性可以用来引用其他的 wxs 文件模块。

引用的时候,要注意如下几点:

只能引用 .wxs 文件模块,且必须使用相对路径。

wxs 模块均为单例,wxs 模块在第一次被引用时,会自动初始化为单例对象。多个页面,多个地方,多次引用,使用的都是同一个 wxs 模块对象。

如果一个 wxs 模块在定义之后,一直没有被引用,则该模块不会被解析与运行。

示例代码:

// /pages/index/index.js

Page({

data: {

msg: “‘hello wrold’ from js”,

}

})

<!– /pages/index/index.wxml –>

<wxs src=”./../comm.wxs” module=”some_comms”></wxs>

<!– 也可以直接使用单标签闭合的写法

<wxs src=”./../comm.wxs” module=”some_comms” />

–>

<!– 调用 some_comms 模块里面的 bar 函数,且参数为 some_comms 模块里面的 foo –>

<view> {{some_comms.bar(some_comms.foo)}} </view>

<!– 调用 some_comms 模块里面的 bar 函数,且参数为 page/index/index.js 里面的 msg –>

<view> {{some_comms.bar(msg)}} </view>

页面输出:

‘hello world’ from comm.wxs

‘hello wrold’ from js

上述例子在文件 /page/index/index.wxml 中通过 <wxs> 标签引用了 /page/comm.wxs 模块。

注意

<wxs> 模块只能在定义模块的 WXML 文件中被访问到。使用 <include> 或 <import> 时,<wxs> 模块不会被引入到对应的 WXML 文件中。

<template> 标签中,只能使用定义该 <template> 的 WXML 文件中定义的 <wxs> 模块。

相关文章
  • 微信小程序开发工具逐步调测

    微信小程序开发工具是开发微信小程序的官方工具,具有良好的开发体验和调试功能,在开发微信小程序时发挥着重要的作用。下面我们将详细介绍微信小程序开发工具的调试原理和详细介绍。一、微信小程序的调试原理微信小程序开发工具的调试原理与其他前端工具大同小异,主要分为以下几个步骤:1. 开发者在本地开发环境中编写...

    2023-11-30
  • 微信小程序开发工具预览不能用

    微信小程序是一种基于微信平台开发的轻量级应用程序,它节省了下载、安装和卸载等时间,用户可以直接在微信中使用小程序。微信小程序的开发工具非常重要,它提供了开发环境、调试环境和发布环境,使开发者可以快速地构建和发布小程序。但是,有时会出现微信小程序开发工具预览不能用的情况,下面我们来探讨一下原因及解决方...

    2023-11-30
  • 小程序链接转网站

    小程序是一种在移动端运行的应用程序,它的出现极大地方便了我们的生活。但是,有时候我们需要将小程序的链接转换成网站链接,这样就可以在电脑端浏览了。下面就来介绍一下小程序链接转网站的原理和具体操作方法。一、转换原理小程序和网站都是通过浏览器来访问的,但是它们的协议不同。小程序使用的是微信协议,而网站使用...

    2023-10-12
  • 小程序开发工具不能输汉字

    小程序开发工具不能输汉字的原因是因为在计算机编码中,汉字所占用的字节数太多了。一般情况下,我们在输入一个汉字时,计算机需要识别该汉字的编码格式、字节数等信息,才能正确地处理这个汉字。但是,在小程序开发工具中,为了保证代码的规范以及便于编辑、调试等操作,一般只允许输入 ASCII 码表中包含的字符,而...

    2023-12-02
  • 小程序ubuntu下开发工具

    小程序是一种轻量级的应用程序,它可以运行在各种平台上,例如微信、QQ、支付宝等。随着智能设备的不断普及,小程序越来越成为人们获取信息、服务和购物等方面的重要方式。如果您想要开发小程序,本文将为您介绍在Ubuntu系统下的开发工具。首先,需要了解小程序的应用开发。小程序是基于微信框架和JavaScri...

    2023-12-02