网站首页 > 技术文章 正文
今天来说一下前端的模块化。
1. 在说前端模块化之前要先了解一下前端模块化解决的哪些问题。
2. 前端为什么要使用模块化?首先来看一段代码,就没有使用模块化的。现在有一个 a.js,a.js 里面定义了一个全局的函数叫 getName,getName 里面会打印一段代码就是打印 a.js。刚刚有一个 b.js,b.js 同样是有一个全局的函数 getName,只不过它里面打印的是 b.js。
3. 有一个使用它们的调用 getName 的文件,在 html 文件中引用这 3 个 js 文件,当在浏览器中打开控制台会显示已经打印出了 b.js。这里面就有一个问题,a.js 中也定义了一个 getName,但它并没有打印出 a.js,是因为在 a.js'b.js 里面有一个相同的变量名称,相同的全局变量 getName。在使用的时候,a.js 在 b.js 引入之前先引入,所以就会导致 b.js 中的全局变量将 a.js 中的全局变量 getName 给覆盖掉了,所以调用的时候只会调用 b.js 中的 getName。
4. 这里就有第一个问题,全局变量命名冲突的问题。特别是在前端的项目中引入了多个库或者多个 js 文件中,它们的全局变量命名如果一致就会导致后者将前者给覆盖掉。
5. 再看第二个问题,就是现在 index.js 是在 a.js 与 b.js 之后才引入的,因为它里面有调用 getName 的方法,是依赖于 a.js 或者是 b.js。如果把它放在 a.js 与 b.js 之前来看一下效果,控制台出现报错,getName 方法没有定义,index.js 就与 a.js、b.js 存在依赖的关系,但是它们的依赖关系并不明确,只有去它们的代码里面去找才能发现,index.js 依赖于 a.js 或者 b.js 里面的 getName 的方法。
所以这就出现了第二个问题,就是依赖关系不明显、不明确。
- 上一篇: 前端模块化具体指什么,本文带你了解
- 下一篇: 今天讲一下完整的前端模块化,很实用
猜你喜欢
- 2024-10-04 前端开发周报:JS 模块化和web图片优化
- 2024-10-04 前端面试:JavaScript 模块化开发怎么做?
- 2024-10-04 模块化和组件化区别 模块化 组件化 插件化
- 2024-10-04 前端系列——DOS常用命令以及npm的模块化管理
- 2024-10-04 这款模块化Mac Pro帅呆了:前端加入TouchBar
- 2024-10-04 VUE前端工程化、组件化、模块化有自己的理解和总结
- 2024-10-04 JS模块化 - 浅谈 CommonJS require 函数实现
- 2024-10-04 前端模块化(CommonJS) 前端模块化和组件化的理解
- 2024-10-04 好程序员web前端学习路线分享css模块化方案
- 2024-10-04 极简模块化前端UI框架 layui 前端模块化开发框架
你 发表评论:
欢迎- 531℃Oracle分析函数之Lag和Lead()使用
- 529℃几个Oracle空值处理函数 oracle处理null值的函数
- 528℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 515℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 513℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 502℃【数据统计分析】详解Oracle分组函数之CUBE
- 481℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 480℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)