모듈식
파일 범위
JavaScript 파일에 선언된 변수와 함수는 해당 파일에서만 유효합니다. 동일한 이름을 가진 변수와 함수는 서로 영향을 주지 않고 다른 파일에 선언될 수 있습니다.
전역 애플리케이션 인스턴스는 전역 함수 getApp()
를 통해 얻을 수 있습니다. 전역 데이터가 필요한 경우 다음과 같이 App()
에서 설정할 수 있습니다. getApp()
可以获取全局的应用实例,如果需要全局的数据可以在App()
中设置,如:
// app.jsApp({ 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)
模块化
我们可以将一些公共的代码抽离成为一个单独的js文件,作为一个模块。模块只有通过module.exports
才能对外暴露接口。
需要注意的是:
exports
是module.exports
的一个引用,因此在模块里边随意更改exports
的指向会造成未知的错误。所以我们更推荐开发者采用module.exports
来暴露模块接口,除非你已经清晰知道这两者的关系。- 小程序目前不支持直接引入
node_modules
, 开发者需要使用到node_modules
时候建议拷贝出相关的代码到小程序的目录中。
// common.js function sayHello(name) { console.log('Hello ' + name + '!') } module.exports = { sayHello: sayHello }
在需要使用这些模块的文件中,使用require(path)
var common = require('common.js') Page({ helloMINA: function() { common.sayHello('MINA') } })rrreeerrreee
Modularization몇 가지 공통 코드를 별도의 js 파일에 모듈로 추출할 수 있습니다. 모듈은 module.exports
를 통해서만 인터페이스를 외부 세계에 노출할 수 있습니다.
module.exports
를 통해서만 인터페이스를 외부 세계에 노출할 수 있습니다. 주의해야 할 점:
exports
는module.exports
에 대한 참조이므로 모듈에서exports
포인터를 변경합니다. 알 수 없는 오류가 발생합니다. 따라서 둘 사이의 관계를 이미 명확하게 알고 있지 않은 한 개발자는module.exports
를 사용하여 모듈 인터페이스를 노출하는 것이 좋습니다.- 현재 미니 프로그램은
node_modules
의 직접 도입을 지원하지 않습니다. 개발자가node_modules
를 사용해야 하는 경우 해당 코드를 미니의 디렉터리에 복사하는 것이 좋습니다. 프로그램.
이러한 모듈을 사용해야 하는 파일에서 require(path)
를 사용하여 공개 코드를 도입하세요.
ES6 구문 및 API 지원
WeChat 애플릿은 iOS, Android 및 디버깅용 개발자 도구의 세 가지 터미널에서 실행됩니다.
- iOS에서는 애플릿의 자바스크립트 코드가 JavaScriptCore에서 실행됩니다
- Android 개발 도구에서는 미니 프로그램의 javascript 코드는 여전히 몇 가지 차이점이 있어 많은 개발자에게 큰 어려움을 안겨주었습니다.