微信小程序开发手册:逻辑层模块化
文件作用域
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前端网发表,如需转载,请注明页面地址。
code前端网



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