当前位置: 首页 > article >正文

在ES6模块中导入和导出

在ES6模块中导入和导出

  • 以最简单的例子举例
//shoppingCart.js
//导出模块
console.log('导出模块');

//script.js
//导出模块
import './shoppingCart.js';
console.log('导入模块');

在这里插入图片描述

  • 所以要导入其他模块必须指定类型
 <script type="Modules" defer src="script.js"></script>

在这里插入图片描述

注:这个输出说明了,导入模块会在所有执行代码之前;

  • 现在我们在shoppingCart中添加一些代码
const shoppingCart = 10;
const cart = [];

const addToCart = function (product, quantity) {
  cart.push({ product, quantity });
  console.log(`${quantity} ${product} 被添加到购物车中`);
};

  • 注意上面的函数只能在本域使用,如果想要其他模块使用的话,需要加上export参数
export const addToCart = function (product, quantity) {
  cart.push({ product, quantity });
  console.log(`${quantity} ${product} 被添加到购物车中`);
};

  • 之后,我们就可以在script.js中去引入并调用这个函数
import { addToCart } from './shoppingCart.js';
console.log('导入模块');

addToCart('面包', 5);

在这里插入图片描述

  • 我们也可以将我们所需要的变量进行导出
const totalPrice = 237;
const totalQuantity = 23;

export { totalPrice, totalQuantity };
import { addToCart, totalPrice, totalQuantity } from './shoppingCart.js';
console.log('导入模块');

addToCart('面包', 5);

console.log(totalPrice, totalQuantity);

在这里插入图片描述

  • 我们可以在导入或者导出的时候更改变量名字
//导出模块
console.log('导出模块');

const shoppingCart = 10;
const cart = [];

export const addToCart = function (product, quantity) {
  cart.push({ product, quantity });
  console.log(`${quantity}元的 ${product} 被添加到购物车中`);
};

const totalPrice = 237;
const totalQuantity = 23;

export { totalPrice, totalQuantity as qt };
import { addToCart, totalPrice as Price, qt } from './shoppingCart.js';
console.log('导入模块');

addToCart('面包', 5);

console.log(Price, qt);

在这里插入图片描述

  • 也可以导入模块中所有命名导出的内容
import * as ShoppingCart from './shoppingCart.js';
ShoppingCart.addToCart('面包', 5);
console.log(ShoppingCart.totalPrice);

在这里插入图片描述

  • 可以使用默认导出
export default function (product, quantity) {
  cart.push({ product, quantity });
  console.log(`${quantity} ${product}添加至购物车中`);
}
import add from './shoppingCart.js';
add('披萨', 2);

在这里插入图片描述

  • 在看一下下面的代码
//ShoppingCart.js
export const cart = [];
//script.js
import add, { cart } from './shoppingCart.js';
add('披萨', 2);
add('苹果', 2);
add('香蕉', 2);
console.log(cart);

在这里插入图片描述

这个例子也验证了一点,导入导出并不是创建副本的形式,他们是有实时联系的;所以这里查询的并不是原始的空数组;


http://www.kler.cn/a/503903.html

相关文章:

  • 查看APK的公钥,MD5信息
  • gesp(C++五级)(4)洛谷:B3872:[GESP202309 五级] 巧夺大奖
  • ISP各模块功能介绍
  • 迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-配置创建私有配置文件
  • 数据仓库基础常见面试题
  • 优先级队列(算法十四)
  • C语言基本知识复习浓缩版:控制语句--分支
  • Flutter路由动画Hero函数的使用
  • 《利用深度神经网络在广角小口径望远镜中实现天文目标的检测与分类》论文精读
  • 价值尺度如何衡量?
  • “AI 自动化效能评估系统:开启企业高效发展新征程
  • 供应链数字化转型参考大型供应链系统技术架构设计方案
  • PBR(策略路由)的几种使用方式
  • C语言导航 7.2函数的调用
  • 常见的Web GIS地图库
  • C++ NULL和nullptr
  • web-前端小实验7
  • nginx 实现 正向代理、反向代理 、SSL(证书配置)、负载均衡 、虚拟域名 ,使用其他中间件监控
  • arcgis提取不规则栅格数据的矢量边界
  • 微信小程序集成Vant Weapp移动端开发的框架
  • LeetCode题练习与总结:01 矩阵--542
  • 构建优雅、高效的 Nodejs 命令行工具 - Archons
  • day13-第一次摸底考试题及讲解
  • L2 正则化(权重衰减)
  • 优化 MySQL 的慢查询
  • WPF系列十二:图形控件CombinedGeometry