es6导出导入
// 导入
import Login from './view/Login.vue' // 导入vue的组件
import './css/login.css' // 导入普通静态资源文件
// 导出
// *** 注意: export default 只能导出一个对象 ***
// (1)vue项目开始,导出一个单文件组件
export default {
data(){
return{
msg: '这是单文件组件的数据'
}
},
methods:{},
}
// (2)平常导出一个普通对象
let obj = { "name":"zhangsan" };
export default obj;
//普通导出
export {
name:'zs',
age: 20
}
//默认导出的模块,让使用者自己命名,且只能使用default导出一次。
export default {
name:'zs',
age: 20
}
//导出的其他模块
export var title = "小星星"
export var content = "哈哈哈"
//导入模块
import {name,age} from './test.js
import m1 from './test.js //m1为自定义名字
import {title,content} from './test.js'
console.log(m1)
console.log(title+"------"+content)
注意:使用export暴露的成员,只能使用{}的方式来接收,这种形式,叫做按需导出
同时,如果某些成员,在import的时候不需要,则可以不在{}中定义
注意:使用export导出的成员,必须严格按照导出时的名称,使用{}接收。
如果非要给导出的非默认模块起别名,使用as起别名:
import m1,{title as title1,content as content1} from './test.js'
console.log(m1)
console.log(title1+"------"+content1)
node.js中的导出导入
// 导入 , 内容分三种,核心模块,第三方库,自定义文件
let fs = require('fs'); // 导入文件系统模块
let my = require('./my.js') // 导入文件或第三方库
// 导出 module.exports 和 exports都行,尽量使用module.exports 当一个模块需要导出特定类型的单个成员的时候,比如数组,方法等,这个时候必须使用module.exports方法,而exports只能是返回一个object对象。
let a = {"name":"zhangsan"};
let b = "这是一个字符串";
let c = ['1','2','3'];
module.exports = {
a,
b,
c,
}
//a.js
function test (args) {
// body...
console.log(args);
}
module.exports = {
test
};
//b.js
let { test } = require('./a.js');
test('this is a test.');
require的核心概念:在导出的文件中定义module.exports,导出的对象类型不予限定(可为任意类型)。在导入的文件中使用require()引入即可使用。本质上,是将要导出的对象,赋值给module这个对象的exports属性,在其他文件中通过require这个方法来访问exports这个属性。上面b.js中,require(./a.js) = exports 这个对象,然后使用es6取值方式从exports对象中取出test的值。