• 前端模块化!


    模块化

    1、 简介

    模块化产生的背景

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

    Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持”类”(class),包(package)等概念,也不支持”模块”(module)。

    模块化规范

    • CommonJS模块化规范
    • ES6模块化规范

    2、CommonJS规范

    每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

    1、创建“module”文件夹

    2、创建 mokuai-common-js/四则运算.js

    // 定义成员:
    const sum = function(a,b){
        return a + b
    }
    const subtract = function(a,b){
        return a - b
    }
    const multiply = function(a,b){
        return a * b
    }
    const divide = function(a,b){
        return a / b
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3、导出模块中的成员

    // 导出成员:
    module.exports = {
        sum: sum,
        subtract: subtract,
        multiply: multiply,
        divide: divide
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    简写

    //简写
    module.exports = {
        sum,
        subtract,
        multiply,
        divide
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4、创建 mokuai-common-js/引入模块.js

    //引入模块,注意:当前路径必须写 ./
    const m = require('./四则运算.js')
    console.log(m)
    const r1 = m.sum(1,2)
    const r2 = m.subtract(1,2)
    console.log(r1,r2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5、运行程序

    node 引入模块.js
    
    • 1

    CommonJS使用 exports 和require 来导出、导入模块。

    3、 ES6模块化规范

    1、创建 mokuai-es6 文件夹

    2、创建 src/userApi.js 文件,导出模块

    export function getList() {
        console.log('获取数据列表')
    }
    export function save() {
        console.log('保存数据')
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、创建 src/userComponent.js文件,导入模块

    //只取需要的方法即可,多个方法用逗号分隔
    import { getList, save } from './userApi.js'
    getList()
    save()
    
    • 1
    • 2
    • 3
    • 4

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

    npm init -y
    
    • 1

    5、配置 .babelrc

    {
        "presets": ["es2015"],
        "plugins": []
    }
    
    • 1
    • 2
    • 3
    • 4

    6、安装转码器,在项目中安装

    npm install --save-dev babel-preset-es2015
    
    • 1

    7、定义运行脚本,package.json中增加”build”

    {
        // ...
        "scripts": {
           "build": "babel src -d dist"
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    8、执行命令转码

    npm run build
    
    • 1

    9、运行程序

    node dist/userComponent.js
    
    • 1

    4、ES6模块化写法2

    1、创建 src/userApi2.js ,导出模块

    export default {
        getList() {
            console.log('获取数据列表2')
        },
        save() {
            console.log('保存数据2')
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、创建 src/userComponent2.js,导入模块

    import user from "./userApi2.js"
    user.getList()
    user.save()
    
    • 1
    • 2
    • 3

    3、执行命令转码

    npm run build
    
    • 1

    4、运行程序

    node dist/userComponent2.js
    
    • 1
  • 相关阅读:
    判断子序列算法
    windows上下载github上的linux内核项目遇到的问题
    基于Javamail的邮件收发系统免费系统+LW
    HBuilder发行微信小程序
    【愚公系列】2022年11月 uniapp专题-运行uniapp的多种方式
    WebGL + ThreeJS 初探
    【手写协程】带你从底层实现一个最小协程调度器
    C++学习day2
    Streamlit项目:乐高风格马赛克设计工坊~打造个性化马赛克图案的平台
    基础-MVP图像处理-仿射变换
  • 原文地址:https://blog.csdn.net/m0_55400356/article/details/126048812