微信小程序开发手册:逻辑层模块化
文件作用域
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.exports
或 exports
向外界公开接口。
需要注意的是:
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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。