Code前端首页关于Code前端联系我们

微信小程序开发手册:逻辑层模块化

terry 2年前 (2023-09-23) 阅读数 399 #移动小程序

文件作用域

JavaScript 文件中声明的变量和函数仅在该文件中有效;同名的变量和函数可以在不同的文件中声明,并且不会互相影响。

您可以通过全局函数getApp()获取应用程序的全局实例。如果需要全局数据,可以在App()中设置,例如:

// app.js
App({
  globalData: 1
})
// a.js
// The localValue can only be used in file a.js.
var localValue = 'a'
// Get the app instance.
var app = getApp()
// Get the global data and change it.
app.globalData++
// b.js
// You can redefine localValue in file b.js, without interference with the localValue in a.js.
var localValue = 'b'
// If a.js it run before b.js, now the globalData shoule be 2.
console.log(getApp().globalData)

Modular

我们可以将一些常用的代码提取到一个单独的js文件中作为模块。模块只能通过 module.exportsexports 向外界公开接口。

需要注意的是:

  • exports是对module.exports的引用,所以将指针更改为会导致❙exports出现未知错误。因此,如果您还不清楚模块接口之间的关系,我们建议开发人员使用 module.exports 来公开模块接口。
  • 小程序目前不支持直接加载node_modules。当开发者需要使用node_modules时,建议将相关代码复制到小程序目录下。

// common.js
function sayHello(name) {
  console.log('Hello ${name} !')
}
function sayGoodbye(name) {
  console.log('Goodbye ${name} !')
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye

​在需要使用这些模块的文件中,使用require(path)加载公共代码。

var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  }
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})

提示

1。提示:require 目前不支持绝对路径

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门