开发 | 只需 2 分钟!带你玩转小程序新语言 WXS

小程序

2017-09-05 20:00

最近,微信官方宣布推出 WXS(WeiXin Script)。

WXS 是微信官方推出的一种脚本语言。引入 WXS 后,小程序开发者可以将数据处理代码进行拆分,打造逻辑更灵活的小程序

小程序开发者应该如何在小程序里,使用 WXS 呢?知晓程序(微信号 zxcx0101)今天就来一步步教你如何使用 WXS。

关注「知晓程序」微信公众号,在微信后台回复「开发」,获取小程序全套开发经验。

WXS 的语法是怎样的?

WXS 的语法与 JavaScript 如出一辙,在 JS 中可用的语句,WXS 几乎都可以支持。

例如,你可以在 WXML 中,写如下代码:

<wxs module='hello'>
  var foo = "Hello World";
  var bar = function(d) {
    console.log(d)
  }
  console.log('Hello')
  module.exports = {
    foo: foo,
    bar: bar
  };
</wxs>
<text>{{hello.foo}}</text>

在小程序中,它可以输出「Hello World」;在调试控制台中,我们也可以看到「Hello」的提示语句出现。

某种程度上,我们也可以将 WXS 视作插入在 WXML 中的 JS 代码,虽然二者在本质上是两种语言。

需要注意的是,小程序中的 WXS 无法使用小程序的 API 接口,以及全局函数。WXS 只能读取 JS 中的 data,并加以处理、使用。

<wxs module='hello'>
  var foo = "Hello World";
  var bar = function(d) {
    console.log(d)
  }
  console.log('Hello')
  module.exports = {
    foo: foo,
    bar: bar
  };
</wxs>
<text>{{hello.bar(variableFromJS)}}</text>

同时,只有在 WXML 中使用 Mustache 语法(双花括号)引用 WXS 模块中的内容,WXS 中的代码才会加载、执行。

如何在小程序项目里开启 WXS?

在最新版的「微信 Web 开发者工具 Beta」中,我们就已经可以开启 WXS 功能了。

需要注意的是,普通的「微信 Web 开发者工具」是没有 WXS 选项的

关注「知晓程序」微信公众号,回复「我要用工具」,查看「微信 Web 开发者工具 Beta」的下载地址。

在开发者工具中,我们可以这样启用 WXS:

  • 进入需要启用 WXS 功能的项目。
  • 点击开发者工具右上角的「项目」按钮。
  • 在「项目设置」中,勾选「使用 WXS」。

之后,我们就可以在项目中使用 WXS 了。

需要注意的是,无论用户的微信版本是多少,你都可以直接启用 WXS

开发者工具在编译、上传代码的时候,会自动将你的 WXS 代码进行转义,所以无需担心兼容性问题。

如何使用 WXS?

微信为我们提供了两个使用 WXS 方法:直接插入 WXS 代码,以及引用 WXS 文件。

1. 直接插入 WXS 代码

直接在 <wxs> 标签里,插入 WXS 代码。

<wxs module='hello'>
  var foo = "Hello World";
  var bar = function(d) {
    console.log(d)
  }
  console.log('Hello')
  module.exports = {
    foo: foo,
    bar: bar
  };
</wxs>

2. 引用 WXS 文件

新建并编写 WXS 文件后,在 WXML 的 WXS 标签中,利用 src 属性,引用相对位置的 WXS 文件。

<wxs module='hello' src='./hello.wxs'>

需要注意的是,每一个 WXS 模块,都需要用 module 标签进行命名。命名模块后,开发者工具才能正常进行编译、在 WXML 中引用模块中的变量与函数。

另外,小程序的条件渲染对 WXS 是无效的

也就是说,即使将 WXS 代码包裹在未渲染的代码中,只要渲染的 WXML 部分调用了此模块,这段 WXS 代码依然会被加载。

关于 WXS,我们就说到这里,希望得知更多有关 WXS 的信息,可以查阅官方文档。

关注「知晓程序」微信公众号,在微信后台回复「文档」,获取小程序官方技术文档地址。

关注「知晓程序」公众号 👇

  • 在微信后台回复「开发」,获取小程序全套开发经验。
  • 在微信后台回复「666」,加入知晓开发联盟。

zxcx_0208

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

净干文科生事情的理科生,悲观的乐观主义者,希望成为路人的铺路石,不矛盾的矛盾体。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容