• 前端模块化开发


    1.模块化产生的背景

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

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

    2.什么是模块化开发

    传统非模块化开发有如下的缺点:

    • 命名冲突
    • 文件依赖

    模块化规范:

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

    3.CommonJS模块规范 

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

    ①创建model文件夹,在该文件夹下创建es5文件夹然后分别创建1.js导出文件以及2.js导入文件

    1. // 1.js导出文件
    2. // 定义成员:
    3. const sum = function(a,b){
    4. return parseInt(a) + parseInt(b)
    5. }
    6. const subtract = function(a,b){
    7. return parseInt(a) - parseInt(b)
    8. }
    9. //导出成员
    10. module.exports = {
    11. sum,
    12. subtract
    13. }
    1. //2.js导入文件
    2. //引入模块,注意:当前路径必须写./
    3. const m = require('./1.js')
    4. console.log(m)
    5. const result1 = m.sum(1,2)
    6. const result2 = m.subtract(1,2)
    7. console.log(result1,result2)

    ②执行结果如下

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

     4.ES6模块化规范

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

    ①在model文件夹下创建es6文件夹,然后再该文件夹下创建1.js导出文件和2.js导入文件

    1. // 1.js导出文件
    2. export function getList(){
    3. console.log("查询数据列表...")
    4. }
    5. export function save(){
    6. console.log("保存数据...")
    7. }
    1. // 2.js导入文件
    2. import {getList,save} from "./01.js"
    3. getList()
    4. save()

    创建成功后,在终端使用node执行该命令,结果会报下面的错误

    这个错误不是es6语法的错误,是因为node不支持es6规范导致的,所以我们需要使用babel工具进行转码工作,将es6的js文件转为es5的文件,转码命令如下,改babel的命令就是将es6文件夹下的所有js文件全部转换为es5文件夹下的js文件

     

    babel es6 -d es5

     

     最终的执行结果如下

    所以使用node工具将es6规范的js文件转换为es5规范的js文件在进行执行

  • 相关阅读:
    04.使用 github actions+docker 自动部署前后端分离项目 zhontai (.net core+vue)
    B端系统:导航机制设计,用户体验提升的法宝
    大数据安全 | 【实验】仿射加密
    目前已确认 Windows 10 KB5015807 更新中存在的问题
    【Flutter】Flutter Web 开发 如何从 URL 中获取参数值
    python 实现 rsa 加密
    初始Pandas -> 数据缺失值处理
    基于分组码的消息验证码的程序实现
    基于yolov2深度学习网络的猫脸检测识别matlab仿真
    opencv-python图片转换、尺寸、传输
  • 原文地址:https://blog.csdn.net/kobe_IT/article/details/128183550