我们在本地项目中,安装的模块都在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腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!