javaScript 接口暴露和引入方式:require 和 import
在JavaScript中,require和import是用于模块引入的两种主要方式,它们主要是遵循的规范不同,前者遵循CommonJS规范,后者遵循ES6规范。
require的接口暴露和引入
在使用require的模块系统中,接口暴露通常通过module.exports或exports对象来实现。开发者可以将函数、对象、变量等赋值给这些对象,从而使其能够被其他模块通过require引入。
module.exports:
/* * 单个暴露 */ const aa = ()=>{ ... } module.exports = aa; // 或者 module.exports = {aa}; /* * 单个引入 */ const aa = require("..."); // 或者 const {aa} = require("..."); /* * 多个暴露 */ const aa = ()=>{ ... } const bb = ()=>{ ... } module.exports = {aa,bb}; // 或者 module.exports = { aa:()=>{ ... }, bb:()=>{ ... } } /* * 多个引入 */ const {aa,bb} = require("...");
module.exports不同暴露方式对应引入方式是不同的,注意区分。(使用大括号暴露时,引入的话也要用大括号!)
exports:
// 暴露模块 exports.aa = ()=>{ ... } exports.bb = ()=>{ ... } // 引入模块
const {aa,bb} = require("...");
exports必须使用 .模块名 的方式来暴露模块,单个还是多个,都是用大括号的方式引入的。
import的接口暴露和引入
在使用import的模块系统中,接口暴露通常通过export或export default对象来实现。开发者可以将函数、对象、变量等赋值给这些对象,从而使其能够被其他模块通过import引入。
export:
// 暴露模块 export const aa = ()=>{ ... } export const bb = ()=>{ ... } // 引入模块 import {aa,bb} from "..."; ... aa(); bb();
export default:
// 单个暴露 const aa = ()=>{ ... } export default aa; // 单个引入 import aa from "..."; // default方式引入名称可以自定义,不过为了一致性,建议还是使用暴露出来的名称来引入
export default 只能单个暴露,想要多个暴露的话使用export方式!
注意:同一文件下,不可以既有CommonJS写法,又有ES6写法!

浙公网安备 33010602011771号