NPM的应用

2023-11-19 15:02:38 浏览数 (1)

我们在本地项目中,安装的模块都在node_modules文件目录下,所以这个文件会很大!!我们在团队协作开发的时候,不论是传到git上,还是直接发送给队友,都不会把node_modules进行传输...但是会传package.json!!

跑环境:按照package.json中的依赖清单,把模块安装一遍「指定版本的」 $ npm i  把开发和生产依赖都安装一遍 $ npm i --production 只安装生产依赖

容易出现的问题:

1项目目录不能用中文和特殊符号命名,否则 $ npm init -y 就会报错

2当前项目目录的所有祖先级目录中,不要出现node_modules,否则安装的模块,可能安装到祖先的node_modules中

================= $ npm i xxx -g(--global) 把模块安装在全局 安装在全局 VS 安装在本地 1.安装在全局可以使用命令,但是不能在项目代码中导入,而且多个项目使用相同的版本,可能导致版本冲突 $ npm root -g 查看安装在全局的目录 2.安装在本地,不能直接使用命令,但是可以在项目中导入,而且也不用担心版本冲突

npm安装模块比较慢 原因1:安装过程是迭代进行的「队列」,上一个模块安装完,下一个模块才开始安装 原因2:安装源是国外 解决: 1.基于nrm切换安装源「或者使用cnpm{淘宝镜像}」 $ npm i nrm -g 安装nrm $ nrm ls 查看有哪些源 $ nrm use xxx 使用某个源 后期还是基于npm处理即可

2.推荐使用yarn $ npm i yarn -g $ yarn init -y  创建package.json $ yarn add/remove xxx/xxx@xxx/xxx@latest... 默认都是生产依赖 $ yarn add xxx --dev 安装开发依赖 跑环境 $ yarn install $ yarn install --production 安装在全局 $ yarn global add xxx  很少用 ...

类库

方法库,不具备任何的思想和逻辑性,只是一个工具包  JQ、Zepto、underscore、Lodash...

插件

把业务中某个常用的功能进行封装(一般只是对于JS的封装) 轮播图插件、日历插件...

UI组件

也是把项目中常用的功能模块封装,和插件的区别是:UI组件一般是 结构、样式、功能都封装好了,而且UI组件库中,会包含大量的UI组件  bootstrap(UI组件库)、swiper、element-ui、antd、vant...

框架

具备自己的核心思想,例如:MVVM(vue)、MVC(react),一般来说,某个框架都有一个完整的生态圈:脚手架、方法库、插件和UI组件库、核心思想...

JQ(jQuery)

JQ(jQuery):是一个类库(方法库),里面提供大量操作DOM及一些常用的方法,依托于这些方法可以简化项目开发(前提:项目是基于操作DOM完成的,在Vue/React数据驱动项目中,已经不咋使用JQ了)

JQ提供的方法在两部分

jQuery.prototype ($.fn) JQ是一个构造函数,在它原型对象上提供了大量的方法,供其实例使用

实例.xxx()

样式类操作:

addClass 增加样式类    removeClass 移除样式类

hasClass 检测样式类   toggleClass 之前有删除,没有就新增

实现JS动画:

animate  stop/finish fadeIn渐现/fadeOut渐隐/fadeToggle  slideDown展开/slideUp卷起来/slideToggle  show/hide/toggle

实现DOM插入:

append/appendTo  insertBefore/insertAfter

自定义属性:

attr  removeAttr  prop/removeProp操作表单元素的自定义属性   

操作事件:

bind/unbind  one事件只绑一次   on/off  delegate事件委托  click/mouseover/mouseout/mouseenter/mouseleave/mousedown/mouseup/mousemove/contextmenu/blur/focus/change/keydown/keypress/keyup...

三大筛选方法:

children  find  filter 

零零散散:

clone  contents  each(遍历数组、类数组、对象)  eq/get  sort

操作样式的:

css   innerWidth/innerHeight  outerWidth/outerHeight  width/height  position offset scrollLeft/scrollTop

操作内容:

html   text

获取节点关系的:

index  prev/prevAll  next/nextAll   siblings  parent  parents获取祖先元素  

JQ也是个普通对象,本身提供很多静态的私有属性方法,这些方法都是工具类方法

$.xxx();

$.Callbacks()  发布订阅设计模式

$.ajax()  发送ajax请求

$.each()  遍历数组、类数组、对象

$.filter()、$.find()  和数组filter/find类似的方法

$.isArray/isEmptyObject/isFunction/isNumeric/isPlainObject/isWindow/isXMLDoc..检测数据类型的方法

$.unique() 数组去重

$.uniqueSort() 去重后排序

$->jQuery

$(selector) JQ选择器,获取元素集合(类数组集合 JQ对象)-> 获取的是JQ这个类的一个实例

JQ实例对象.get(索引) --> DOM对象

$(DOM对象) ——> JQ实例对象

若有收获,就点个赞吧

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞