微信小程序开发知识

WXS

  • 2020.10.31

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

注意

  1. WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。

  2. WXSJavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。

  3. WXS 的运行环境和其他 JavaScript 代码是隔离的,WXS 中不能调用其他 JavaScript 文件中定义的函数,也不能调用小程序提供的API(即wxs文件中无法使用wx.xxx)。

  4. WXS 函数不能作为组件的事件回调。

  5. 由于运行环境的差异,在 iOS 设备上小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。

TIP

第一点: wxs里面的代码是不需要去做新老版本兼容的。

第二点: 类似 const fn = () => {}等ES6语法在wxs中是不支持的。

第四点: 在wxml文件中是不支持对bindtap等事件绑定wxs中定义的函数的,交互等事件只能写在js文件中。

第五点: 虽然在android中效率无差异,但是某些工具函数等只跟页面显示逻辑相关的方法可以放在wxs文件中实现,这样可以加快在ios中的速度。

引申: 为什么WXS快呢?

由于 WXSWXML 是在同一个线程运行的,避免了跨线程通信的开销。(也就仅此一点原因)

引用npm包

  • 2020.11.03

小程序中目前已支持使用npm包来安装自定义插件,在安装前需要先安装Node.js,执行安装命令后需要在项目开发者工具菜单上,点击工具---->构建npm。

引申: 构建npm这个步骤到底发生了什么?

我们安装的npm包,执行构建命令之后会生成一个node_modules文件夹,在这个文件夹下面会放置着我们安装的包。在引用的时候,需要我们在用到目录中配置json。类似如下示例:

{
  "usingComponents": {
    "mp-cell": "weui-miniprogram/cell/cell"
  }
}

配置好后,我们看到组件的地址是直接以文件路径开始的,默认会去在项目的miniprogram_npm这个文件夹下面去找对应的文件。这也就是构建npm后使用的本质,小程序实际上读取的是miniprogram_npm这个目录下的文件,而构建npm命令执行时,把 node_modules目录下的代码拷贝到了miniprogram_npm目录下。

常见问题

async语法在小程序中默认是不支持的,如何开启支持?

  1. 需要在小程序开发工具里面本地设置开启 增强编译
上次更新时间: 2021-03-29 22:47:00