Javascript模块化

Javascript模块化

一、模块化简介

1、模块化产生的背景

随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。

Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。

但是,Javascript不是一种模块化编程语言,它不支持"类"(class),包(package)等概念,更遑论"模块"(module)了。

2、什么是模块化开发

传统非模块化开发有如下的缺点:
命名冲突
文件依赖

模块化规范:
CommonJS模块化规范
ES6模块化规范

二、CommonJS模块规范

每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
1、创建“module”文件夹
2、导出模块

创建 common-js模块化/四则运算.js

// 定义成员:

const sum = function(a,b){

    return parseInt(a) + parseInt(b)

}

const subtract = function(a,b){

    return parseInt(a) - parseInt(b)

}

const multiply = function(a,b){

    return parseInt(a) * parseInt(b)

}

const divide = function(a,b){

    return parseInt(a) / parseInt(b)

}
导出模块中的成员

// 导出成员:

module.exports = {

    sum: sum,

    subtract: subtract,

    multiply: multiply,

    divide: divide

}
简写

//简写

module.exports = {

    sum,

    subtract,

    multiply,

    divide

}

3、导入模块

创建 common-js模块化/引入模块.js

//引入模块,注意:当前路径必须写 ./

const m = require('./四则运算.js')

console.log(m)

const result1 = m.sum(1, 2)

const result2 = m.subtract(1, 2)

console.log(result1, result2)

4、运行程序

node common-js模块化/引入模块.js
CommonJS使用 exports 和require 来导出、导入模块。

三、ES6模块化规范

ES6使用 export 和 import 来导出、导入模块。

1、导出模块

创建 es6模块化/userApi.js

export function getList() {

    console.log('获取数据列表')

}


export function save() {

    console.log('保存数据')

}

2、导入模块

创建 es6模块化/userComponent.js

//只取需要的方法即可,多个方法用逗号分隔

import { getList, save } from "./userApi.js"

getList()

save()
注意:这时的程序无法运行的,因为ES6的模块化无法在Node.js中执行,需要用Babel编辑成ES5后再执行。

3、运行程序

node es6模块化-dist/userComponent.js

四、ES6模块化的另一种写法

1、导出模块

创建 es6模块化/userApi2.js

export default {

    getList() {

        console.log('获取数据列表2')

    },


    save() {

        console.log('保存数据2')

    }

}

2、导入模块

创建 es6模块化/userComponent2.js

import user from "./userApi2.js"

user.getList()

user.save()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值