• 【ES6模块化】黑马vue视频笔记(十一)


    1. 什么是 ES6 模块化规范

    ES6 模块化规范是浏览器端服务器端通用的模块化开发规范。它的出现极大的降低了前端开发者的模块化学习成本,开发者不需再额外学习 AMD、CMD 或 CommonJS 等模块化规范。

    ES6 模块化规范中定义:
    ⚫ 每个 js 文件都是一个独立的模块
    ⚫ 导入其它模块成员使用 import 关键字
    ⚫ 向外共享模块成员使用 export 关键字

    2. 在node.js中体验ES6模块化

    node.js 中默认仅支持 CommonJS 模块化规范,若想基于 node.js 体验与学习 ES6 的模块化语法,可以按照如下两个步骤进行配置:
    ① 确保安装了 v14.15.1 或更高版本的 node.js
    ② 在 package.json 的根节点中添加 "type": "module" 节点

    在终端输入如下命令可以快速初始化一个包管理文件

    npm init -y
    
    • 1
    // package.json
    {
    	"type": "module", // 添加"type": "module"体验ES6 的模块化语法
    	"name": "code",
    	"version": "1.0.0",
    	"description": "",
    	"main": "index.js",
    	"scripts": {
    		"test": "echo \"Error: no test specified\" && exit 1"
    	},
    	"keywords": [],
    	"author": "",
    	"license": "ISC"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3. ES6 模块化的基本语法

    ES6 的模块化主要包含如下 3 种用法:
    默认导出默认导入
    按需导出按需导入
    直接导入执行模块中的代码

    3.1 默认导出

    默认导出的语法: export default 默认导出的成员

    let n1 = 10
    let n2 = 20
    function show () {}
    
    export default {
    	n1,
    	show
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    默认导出的注意事项
    每个模块中,只允许使用唯一的一次 export default,否则会报错!

    在这里插入图片描述

    3.2 默认导入

    默认导入的语法: import 接收名称 from '模块标识符'

    import m1 from './01.默认导出.js'
    console.log(m1); // { n1: 10, show: [Function: show] }
    
    • 1
    • 2

    默认导入的注意事项

    默认导入时的接收名称可以任意名称,但是一定要是合法的成员名称。

    在这里插入图片描述

    3.3 按需导出

    按需导出的语法: export 按需导出的成员

    export let s1 = 'aaa'
    export let s2 = 'ccc'
    export function say () {}
    
    • 1
    • 2
    • 3

    3.4 按需导入

    按需导入的语法: import { s1 } from '模块标识符'

    import { s3 } from './03.按需导出.js'
    console.log(s3);
    
    • 1
    • 2

    按需导出与按需导入的注意事项
    ① 每个模块中可以使用多次按需导出
    ② 按需导入的成员名称必须和按需导出的名称保持一致
    ③ 按需导入时,可以使用 as 关键字进行重命名
    按需导入可以和默认导入一起使用

    3.5 直接导入并执行模块中的代码

    如果只想单纯地执行某个模块中的代码,并不需要得到模块中向外共享的成员。此时,可以直接导入并执行模
    块代码,示例代码如下:

    // ./05.模块代码.js
    for (let i = 0; i < 3; i++) {
    	console.log(i)
    }
    // -----------分割线------------
    import './05.模块代码.js'
    // 输出 0 1 2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    MySQL8.0优化 - 锁 - 从数据操作的类型划分:读锁、写锁
    Java基础-反射
    关于gdb调试: 你的问题可能会在这里找到答案
    ASP.NETCore统一处理404错误都有哪些方式?
    v-cloak的作用和原理
    12、初识表单POST和get提交
    Spring 源码阅读 10:自定义的 EntityResolver 是如何帮助 Spring 校验 XML 配置的
    2022-08-01 田龙跃 学习笔记
    (附源码)springboot音乐播放小程序 毕业设计 031306
    一文了解优先考虑结果的以「意图」为中心的 Intent-Centric 架构
  • 原文地址:https://blog.csdn.net/weixin_51233575/article/details/126003248