模块化:模块是一个文件
    好处:
        1.减少命名冲突
        2.避免引入时的层层依赖
        3.可以提升执行效率
    **第一种方法***********************
        1.如何导出(暴露)
            export let run =function(){
                console.log("run-->fun")
            }
            export let userName = "jinglijuan"
        2.如何引入(依赖)
<script type="module">  //设置为module类型
                import {run,userName} from "./mo.js" //内部名字要与暴露出来的名字一致                 run();
                console.log(userName)
</script>
    **第二种方法 :暴露的数据过多时使用
        1. 导出时正常导出
            export let run =function(){
                console.log("run-->fun")
            }
            export let userName = "jinglijuan"
        2. 导入时
<script type = "module">
                import * as 别名 from './mo.js'
                console.log(别名.暴露的方法或者变量名)
                console.log(mo.run)
</script>
    **第三种方法:直接导出对象
        1. 导出:
            let run = function(){
                console.log("jinglijuan")
            }
            let userName = "jinglijuan"
            let age = 21
            let sex = "woman"             export {
                run,
                userName,
                age,
                sex
            }
        2. 如何导入(接收):
            import {userName,age} from "./mo.js"
            console.log(userName,age)
    **第四种方法:导出的数据起个别名
      导出时通过as给导出的内容起个别名,接收时需要以别名为依据
        1. 导出:
            let age = 21
            let sex = "woman"             export {
                age as a,
                sex
            }
        2. 如何导入(接收):
            import {userName,a} from "./mo.js"
            console.log(userName,a)
     **第五种,引入时增加别名(从不同文件中的引入的变量名或者方法名可能是重名的,引入时使用会报错)
        1.引入
           import {userName as moUserName} from './mo4.js'
           import {userName} from './mo5.js'
           console.log(moUserName,userName)
     **第六种:默认导出(使用频率最高)
        只能有一个默认对象
        1.导出(暴露)
            export default {
                userName:'jinglijuan',
                age:20
            }
        2.引入(接收)
            import mo from "./mo.js"
            console.log(mo.userName)
     **第七种:混合导出
        1.导出(暴露)
            export default{
                userName:'jinglijuan',
                age:20
            }
            export let sex = '男'
         2.引入
            import mo,{sex} from './mo7.js'
            console(mo.userName,mo.age,sex)       模块的特点:
        1.可以相互依赖
        2.当你的模块被多次引入时,只执行一次
            在多处引入相同的js文件,那么这个js文件只会执行一次

ES6模块化及优点,简单案例让你秒懂的更多相关文章

  1. seaj和requirejs模块化的简单案例

    如今,webpack.gulp等构件工具流行,有人说seajs.requirejs等纯前端的模块化工具已经被淘汰了,我不这么认为,毕竟纯前端领域想要实现模块化就官方来讲,还是有一段路要走的.也因此纯前 ...

  2. ES6模块化

    关于ES6模块化 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来.其他语言都有这项功能,比如 Ruby 的require ...

  3. ES6模块化与常用功能

    目前开发环境已经普及使用,如vue,react等,但浏览器环境却支持不好,所以需要开发环境编译,下面介绍下开发环境的使用和常用语法: 一,ES6模块化 1,模块化的基本语法 ES6 的模块自动采用严格 ...

  4. ES6模块化使用遇到的问题

    前言 最近在学习ES6模块化时,遇到了一些问题,通过查询相关资料得以解决,本篇随笔详细记录了解决方法. 具体内容 以下定义一个模块common.js 在test.html中引入上述定义的模块 运行上述 ...

  5. SpringBoot基础学习(一) SpringBoot概念、简单案例实现、单元测试及热部署讲解

    SpringBoot概念 Spring优缺点分析 Spring优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品,无需开发重量级的 ...

  6. Servlet请求头response应用简单案例

    Servlet请求头response应用简单案例:访问AServlet重定向到BServlet,5秒后跳到CServlet,并显示图片: AServlet package cn.yzu; import ...

  7. winform 通过 html 与swf 交互 简单案例

    在上一篇 winform 与 html 交互 简单案例 中讲了winform与html之间的简单交互,接下来的内容是在winform中以html为中转站,实现将swf嵌入winform中并实现交互. ...

  8. [Design Pattern] Front Controller Pattern 简单案例

    Front Controller Pattern, 即前端控制器模式,用于集中化用户请求,使得所有请求都经过同一个前端控制器处理,处理内容有身份验证.权限验证.记录和追踪请求等,处理后再交由分发器把请 ...

  9. [Design Pattern] Observer Pattern 简单案例

    Observer Pattern,即观察者模式,当存在一对多关系,例如一个对象一有变动,就要自动通知被依赖的全部对象得场景,属于行为类的设计模式. 下面是一个观察者模式的简单案例. Observer ...

随机推荐

  1. SQL-W3School-高级:SQL AUTO INCREMENT 字段

    ylbtech-SQL-W3School-高级:SQL AUTO INCREMENT 字段 1.返回顶部 1. Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INC ...

  2. java nio 缓冲区读写数据(图形详解)

    Position 您可以回想一下,缓冲区实际上就是美化了的数组.在从通道读取时,您将所读取的数据放到底层的数组中. position 变量跟踪已经写了多少数据.更准确地说,它指定了下一个字节将放到数组 ...

  3. 移动Windows Kits目录

    Visual Studio安装以后动辄得咎就占用c盘20多个G的空间,这对空间紧张的用户来说的确令人望而生畏. 比如笔者Windows Kits这个目录往往就4G空间以上,为了节省空间,移动到其他目录 ...

  4. pod install报错 [!] Error installing......

    今天pod install出现这个错误: 解决办法: 多试几次就好了,也不知道之前几次都失败.....希望知道的可以留言告诉我哟!!!

  5. Windows 7通过VirtualBox配置镜像加速

    配置Docker镜像加速: 1.双击,开启default 2.开启后执行下面的命令修改profile文件: sudo vi /var/lib/boot2docker/profile 打开文件之后,敲下 ...

  6. QFramework 使用指南 2020 (一): 概述

    大家好,我是 QFramework 的作者 凉鞋,QFramework 从第一次代码提交到现在快 5 年了,期间陆陆续续增加了很多功能,在使用体验上做了大量的改进. 而市面上关于 QFramework ...

  7. 插件之一:Epplus

    从策划配置文件导入项目实际使用,为提高效率总会使用一些转换工具,据同事介绍Epplus更强大一些,我自己试了下,发现api非常全面且强大.记录下所学. 一.插件来源 https://github.co ...

  8. Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree)

    Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree) 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左 ...

  9. OpenCV.概念(读书笔记)

    ZC:学习OpenCV.pdf 1.多通道矩阵(学习OpenCV.pdf) 1.1.在学习opencv的时候看到多通道矩阵这一概率,恳求大神告诉我一下什么意思_百度知道.html(https://zh ...

  10. openat与open的区别及用法示例

    从2.6.16版本开始,GNU/Linux引入opeant系统调用: #define _XOPEN_SOURCE 700 /* Or define _POSIX_C_SOURCE >= 2008 ...