摘要
CocosCreator 已经拥抱 ES6 语法,你还在使用 ES5 吗?今天 KUOKUO 为你带来导出模块的各种姿势!
正文
原写法
模块化使你可以在 CocosCreator 中引用其它脚本文件:
- 访问其它文件导出的参数
- 调用其它文件导出的方法
- 使用其它文件导出的类型
那么一般的写法是
// data.js
var data = {
name: 'kuokuo',
age: 21,
sayHello: function () {
console.log('Hello');
}
}
module.exports = data;
导入
// main.js
var data = require('data');
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(data.name, data.age); // kuokuo 21
data.sayHello(); // Hello
},
});
ES6写法
上述写法换成 ES6 的即为
// data.js
let data = {
name: 'kuokuo',
age: 21,
sayHello: function () {
console.log('Hello');
}
}
export default data;
导入
// main.js
import data from "./data";
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(data.name, data.age); // kuokuo 21
data.sayHello(); // Hello
},
});
而且有了 import 后,代码提示就会出来,极大的提高了开发效率。
各种姿势
姿势一
exports.num = 1;
exports.add = (a, b) => {
return a + b;
}
exports.dog = class {
constructor () {
console.log('new');
}
}
导入
import { num, add, dog } from "./data";
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(num); // 1
console.log(add(1, 2)); // 3
let k = new dog(); // new
},
});
姿势二
export let num = 1;
export let add1 = (a, b) => {
return a + b;
}
function add2 (a, b) {
return a + b;
}
export { add2 };
export class dog {
constructor () {
console.log('new');
}
}
导入
import { num, add1, add2, dog } from "./data";
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(num); // 1
console.log(add1(1, 1)); // 2
console.log(add2(1, 2)); // 3
let k = new dog(); // new
},
});
姿势三
为模块重命名
export function aFunc (a, b) {
return a + b;
}
as 关键字
import { aFunc as add } from "./data";
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(add(1, 1)); // 2
},
});
姿势四
export 与 import 的复合写法
// dog.js
export class dog {
constructor () {
console.log('dog 初始化');
}
sayHello () {
console.log('Hello!');
}
}
// data.js
export function aFunc (a, b) {
return a + b;
}
export { dog } from "./dog";
这样只需要导入 data 一个模块
import { aFunc as add , dog} from "./data";
cc.Class({
extends: cc.Component,
properties: {
},
onLoad () {
console.log(add(1, 1)); // 2
let k = new dog(); // dog 初始化
k.sayHello(); // Hello!
},
});
结语
小伙伴们掌握了吗?
O(∩_∩)O~~