JS模块化——ES6相关笔记

ES6

一、规范

1.1 说明
  • http://es6.ruanyifeng.com/#docs/module
  • 依赖模块需要编译打包处理
1.2 语法
  • 导出模块: export
  • 引入模块: import

二、实现

  • 使用Babel将ES6编译为ES5代码
  • 使用Browserify编译打包js

三、ES6-Babel-Browserify使用教程

  1. 定义package.json文件
npm init -y 
  1. 安装babel-cli, babel-preset-es2015和browserify
  • npm install babel-cli browserify -g (cli:command line interface 命令行接口)
  • npm install babel-preset-es2015 --save-dev
  1. 定义 .babelrc 配置文件(rc即run control运行控制文件)

    {
     "presets": ["es2015"]
     }
    
  2. 编码

  • js/src/module1.js

    // 分别暴露模块
    export function foo() {
      console.log('foo() module1')
    }
    
    export function bar() {
      console.log('bar() module1')
    }
    
    export let arr = [1, 2, 3, 4, 5, 6]
    
  • js/src/module2.js

    // 统一暴露
    function fun() {
      console.log('fun() module2')
    }
    
    function fun2() {
      console.log('fun2() odule2')
    }
    
    export {
      fun,
      fun2
    }
    
  • js/src/module3.js

    // 默认暴露,可以暴露任意数据类型,暴露什么数据接收到的就是什么数据
    // 语法:export default value
    
    
    // export default () => {
    //   console.log('我是默认暴露的箭头函数')
    // }
    
    // 默认暴露一个对象
    export default {
      msg: '默认暴露',
      foo() {
        console.log(this.msg)
      }
    }
    
  • js/src/main.js

  • 在ES6这种模块化规范里,如果用分别暴露或者统一暴露(常规暴露)这两种方式都有一个特点:要求在引入的时候必须用对象解构赋值的形式

    // 引入其他模块
    
    // 语法:import xxx from '路径'
    
    import {foo, bar} from './module1'
    import {fun, fun2} from './module2'
    import module3 from './module3'
    
    foo()
    bar()
    fun()
    fun2()
    module3.foo()
    
  1. 编译
  • 使用Babel将ES6编译为ES5代码(但包含CommonJS语法) : babel js/src -d js/lib
  • 使用Browserify编译js : browserify js/lib/app.js -o js/lib/bundle.js
  1. 页面中引入测试
<script type='text/javascript' src='./js/build/bundle.js'></script>

当修改模块js文件被修改后,需将编译这部分操作重复一遍

  1. 引入第三方模块(jQuery)
    1). 下载jQuery模块:

    • npm install jquery@1 --save (@1即指定下载1版本里最新的版本,@后接要指定的版本号)
      2). 在main.js中引入并使用
    import $ from 'jquery'   // 引入第三方库
    $('body').css('background', 'pink')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值