| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 模块化开发 -> 正文阅读 |
|
[JavaScript知识库]模块化开发 |
模块化的基本概念 1.编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并且相互依赖的多个小模块 2.把代码进行模块拆分的好处: 2.1提高了代码的复用性 2.2提高了代码的可维护性 2.3可以实现按需加载 3.模块化规范 模块化的规范就是对代码进行模块化的拆分与组合时,需要遵守的那些规则 例如 3.1使用什么样的语法格式来引用模块 3.2在模块化使用什么样的语法格式向外暴露成员 4.模块化规范的好处:大家都遵守同样的模块化规范写代码,降低了沟通的成本,极大地方便了各个模块之间的相互调用,利人利己 Node.js中的模块化 1.1Node.js 中模块的分类 Node.js中根据模块来源的不同,将模块分为了3大类,分别是: 1.2内置模块(内置模块是由Node.js官方提供的,例如fs.path,http等) 1.3自定义模块(用户创建的每个js文件,都是自定义模块) 1.4第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载) 2.2加载模块 使用强大的require()方法,可以加载需要的内置模块,用户自定义模块,第三方模块进行使用,例如
注意:使用require()方法加载其他模块时,会被执行加载模块中的代码 Node.js中的模块作用域 1.什么是模块作用域 和函数作用域类似,在自定义模块中定义的变量,方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域 2.模块作用域的好处 防止全局变量污染的问题 3.向外共享模块作用域中的成员 3.1module对象 在每个.js自定义模块中都有一个moduile对象,它里面存储了和当前模块有关的信息,打印如下 exports{} 4.向外共享模块作用域中的成员 4.1module.exports对象 在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用,外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象 向外共享模块作用域中的成员 4.2共享成员时的注意点 使用require()方法导入的结果,永远module.exports指向的对象为准 4.3?exports 对象 由于module.exports单词写起来比较复杂,为了简化向外共享成员代码,Node提供exports对象,默认情况下,exports和module.exports指向同一个对象,最终共享结果还是module.exports指向的对象为准 5.向外共享模块作用域中的成员 5.1时刻谨记,require()模块时,得到的永远的module.exports指向的对象 ?注意:?为了防止混乱,建议大家不要在同一个模块中同时使用exports和module.exports 6.Node.js中的模块化规范 Node.js遵循了CommmonJs模块化规范,CommonJs规定了模块的特性和各模块之间如何相互依赖 CommonJs 规定: 6.1每个模块内部,module变量当前模块 6.2module 变量是一个对象,它的exports属性(即mpdule.exports?)是对外接口 6.3加载某个模块,其实是加载改模块的module.exports属性.require()方法用于加载模块. npm与包 1包 1.1什么是包 Node.js中的第三方模块又叫做包 就像是计算机与电脑是相同的东西,第三方模块和包指的是同一个概念,只不过叫法不同 2.包的来源 不同于Node.js的内置模块与自定义模块,包是由2第三方个人或者团队开发出来的,免费供所有人使用 注意:Node,js中的包都是免费开源的,不需要付费即可免费下载使用. 3.为什么需要包 由于Node.js的内置模块仅提供了一些底层的API,导致在基于内置模块进行项目开发时,效率很低 包是基于内置模块封装出来的,提供了更高级,更方便的API,极大的提高了开发效率 包和内置模块之间的关系,类似于jQuery和浏览器内置API之间的关系 npm初体验 1.1格式化时间的传统做法 创建格式化时间的自定义模块 定义格式化时间方法 创建补零函数 从自定义模块中导出格式化时间函数 导入格式化时间的自定义模块 调用格式化时间函数 2.2格式化时间高级做法 使用npm包管理工具,在项目中安装格式化时间的包moment 使用require()导入格式化时间的包 参考moment的官方API文档对时间进行格式化
?3.3在项目中安装包的命令 如果想在项目中安装指定名称的包,需要运行如下的命令
4.初次装包后多了那些文件 初次装包完成后,在项目文件夹下多一个叫做node_modules的文件夹和package-lock.json的配置文件 其中: node,modules 文件夹用来存放所以已安装到项目中的包,require()导入第三方包时,就是从这个目录中查找并加载包 package-lock.json配置文件用来记录node_moduies目录下的每一个包的下载信息,;例如包的名字,版本号,及下载地址等 注意:程序员不要手动修改node_modules 或package-lock.json文件中的任何代码,npm包管理工具会自动维护他们 5.安装指定版本的包 默认情况下,使用npm install命令安装包的时候,会自动安装最新版本的包,如果需要安装指定版本的包,可以提供@符号指定具体的版本,例如
6.包的语义化版本规范 包的版本号是以'点分十进制'形式进行定义的,总共有三位数字,例如2.24.0 其中每一位数字所代表的含义如下: 第一位数字:大版本 第二位数字:功能版本 第三位数字:bug修复版本 版本提升的规制:只要前面的版本号增长了,则后面的版本号归零 7.包管理配置文件 npm规定,在项目根目录中,必须提供一个叫做package.json 的包管理配置文件,用来记录与项目有关的一些配置信息,例如: 项目的名称,版本号,描述等 项目中都用到了那些包 那些包只能包在开发期间会用到 那些包在开发和部署时都需要用到 8.在项目根目录中,创建一个叫做package,json的配置文件,即可用来记录项目中安装了那些包,从而方便剔除 node_modules目录之后,在团队成员之间共享项目的源代码 注意:今日在项目开发中,一定要把nade_modules文件夹,添加到.gitignore忽略文件中 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:35:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |