美文网首页
前端的模块化发展

前端的模块化发展

作者: bzwhlll | 来源:发表于2018-10-08 21:23 被阅读0次

模块化与组件化的区别

  1. 模块化解耦复杂度,即将功能分成小块
  2. 组件化我理解为可复用的功能,比如写一个轮播组件,基于Vue框架的UI组件库中的一个组件
  3. 以下主要讨论模块化的历史

最初

在一个index.html里的script块里我们直接写很多js代码

随后

用引入一个js文件替代这种方式。在js文件里的代码不断增多时,可以把一个js中不同功能的部分抽离出来,写成多个js文件。

  1. MVC

一个js文件中的代码又可用MVC来设计,具有很好的可读性。

  1. 依赖顺序

<script src="a.js"></script>
<script src="b.js"></script>

这种方式下,依然需要用script方式引入多个js文件,严重依赖于引入顺序,若b模块依赖a模块,则顺序错误时便会出错。
import export的方式解决了这一问题,明确了每部分模块的依赖关系。

Node.js出世

适用于服务器端的规范——CommonJs

  • 使用require来获取依赖模块
  • 不能用于浏览器端

浏览器端的模块解决方案

  1. AMD(Asynchronous Module Definition)规范

  • 非原生
  • RequireJs实现
  1. CMD(Common Module Definition)规范

  • 玉伯,自立门户
  • 非原生
  • SeaJs实现
  1. AMD和CMD差异

  • 主要在于何时加载和运行依赖项?
  • AMD 声明依赖后即将依赖模块运行
  • CMD在需要依赖时才会运行依赖模块。

统一规范

CommnJs,RequireJs,SeaJs,众多规范看起来实在头疼,好在es6要解决模块问题了

  1. ES6Module

在之前众多非原生解决方案后,ES6提出module模块,以exportimport方式来解决依赖问题。
但是目前浏览器还未支持,因此不能直接运行。一般使用babel将其转为浏览器能运行的版本(向过去转换)

  1. 特性
  • ES6中,import引入的依赖在编译时加载或称为静态加载

Ref

相关文章

  • ES Modules 中的 __dirname 和 __file

    模块化发展 早期,前端这块没有模块化系统,而 Node.js 需要模块化所以只能一直使用 CommonJS 标准凑...

  • 前端模块化(requirejs)

    前端模块化 什么是前端模块化 将代码依据不同功能,或者职责进行模块的划分,就称为前端模块化 模块化的好处 结构更轻...

  • 前端模块化总结

    js模块化的发展:最早js是没有模块化概念的,为了防止命名空间被污染,采用的是命名空间的方式,随着前端的发展,co...

  • 【webpack学习笔记—1】3点弄懂CommonJS模块打包标

    前言 前端本没有模块化,但是随着前端工程的发展,各个文件间的关系越来越多,为了能彼此方便地引用,慢慢地便有了模块化...

  • 【webpack学习笔记—2】ES6模块打包标准

    前言 前端本没有模块化,但是随着前端工程的发展,各个文件间的关系越来越多,为了能彼此方便地引用,慢慢地便有了模块化...

  • 前端模块化(webpack)

    前言 前端模块化是一种开发管理规范,前端开发发展到现在,已经有很多成熟的构建工具可以帮助我们完成模块化的开发需求,...

  • 前端的模块化发展

    模块化与组件化的区别 模块化解耦复杂度,即将功能分成小块 组件化我理解为可复用的功能,比如写一个轮播组件,基于Vu...

  • webpack基础笔记

    webpack基础 1.前端工程化 实际的前端开发: 模块化:(js的模块化,css的模块化,资源的模块化) 组件...

  • 关于前端模块化开发

    关于前端模块化开发 1 前端中有哪些模块化开发的规范以及实现方案 2 模块化的开发的好处 3 CommonJS

  • 认识Webpack

    要了解Webpack,首先要知道前端模块化开发的概念 前端模块化 模块化的目的是使代码可以重用,模块化在任何开发中...

网友评论

      本文标题:前端的模块化发展

      本文链接:https://www.haomeiwen.com/subject/ipqraftx.html