前端常用的开工具库
常用的开发工具库
打包工具webpack
webpack是现在最流行的打包工具之一,是javaScript的静态模块的打包器。会根据业务逻辑构建一个依赖的关系图,每一个依赖的单元都是一个模块,模块可以是js文件 可以图片资源或者css资源。在使用webpack的时候需要下面三个工具
1. webpack 打包工具
2. webpack-cli 命令行工具
3. webpack-dev-serve node服务器
webpack的核心原理
- 一切皆模块
模块不仅包括js文件还包括css文件和图片文件 。在webpack世界这些都可以是一个模块。通过require或者import的方式引入。 - 按需加载
单页应用在初始加载要加载非常大代码量,由于加载时间过长会导致页面有白屏或者等待现象。按需加载就是随着用户的操作每次只加载功能或者业务所需的代码块。webpack 内置了非常强大的代码分割功能,来实现按需加载。webpack 核心概念
- 入口entry :打包入口点在webpack中通过entry来设置
- 出口output: 用于指定打包出来的文件的路径和文件名
- loader编译器: 就是除了js文件以外其他文件的编译器,其中rules用来配置编辑规则,test用于正则匹配,excude用于排除特定条件,use-loader是test匹配到的解析器模块,use-options主要是与use-loader配合使用
- 插件plugins:是用于将loader之后的文件进行优化分类压缩并提供公共代码等
- 打包模式mode:mode打包出来的有两种模式。一种是开发模式 打出来的文件是没有经过压缩的,命令:webpack --model=development ;另外一种是生产环境。打包出来的会压缩,命令是: webpack --model=development
- 服务器配置devserve:用于配制本地服务器,可以配置启动端口,主机地址,是否热启动等信息
页面跳转之 react-router-dom
import React from 'react';
import {HashRouter, BrowserRouter, Router, Redireact, Switch, Link, NavoLink } from 'react-router-dom';
import Home from './component/home';
import Detail from './component/detail';
const Router =() => {
<BrowerRouter><Route path="/detail" name="detail" component={Detail}/></BrowerRouter>
}
export default Router;
路由配置主要有:
path: 组件相对路径
name:组件的路径别名
component:组件地址
在路由配置中有两个属性exact、strict ,想要严格匹配两个都需要为true
路由的跳转方式
link 或者 NavLink ,实质是一个a标签,区别是后者在切换的时候 可以切换样式
<ul>
<li>
<NavLink exact to="/" activeStyle={{fontWeight:'bold',color:'red',
}}>home</NavLink>
<NavLink exact to="/detail" activeStyle={{fontWeight:'bold',color:'red',
}}>detail</NavLink>
</li>
</ul>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
<ul>
<li onclick{() => this.props.history.push({pathname:'detail'})}>
<div>home</div>
</li>
<li onclick{() => this.props.history.push({pathname:'home'})}>
<div>detail</div>
</li>
</ul>
组件库ant-design
React 框架主要是实现UI层,功能逻辑更多的是依赖第三方模块。而与React搭配得较为契合的第三方模块就是蚂蚁金服前端团队开发的ant-design模块
antd-mobile库提供了丰富的组件,常用的有:
- Tabs 标签页,切换标签可以定位到对应的内容
- Carousel走马灯,主要用于轮播图
- DatePicker 日期选择
- ListView 长列表
css预处理之Less
less是css的预处理器,是对css的一种拓展。它具备动态语言的特点,如变量、运算、函数,所以是一门动态语言
less既可以在客户端使用,也可以在服务器使用 node.js
客户端使用如下:
<link rel="stylesheet" href="style.less">
<script src="less.min.js"></script>
服务端: npm install -g less
Less语法
- 变量
@width:100px; div{width:@width} - 运算
@width:100px; div{width:@width/2} - 字符串插值
@url=‘img/index’; div{background: url(“@{url}search.png”)} - 混合
.input{width:100px;height:30px}; div>input{.input,color:red} 注意这里的.input可以看成一个变量 - 带参混合
.input(@px) { width: @px; height: 30px};
div>input{.input (100px) ,color: red} - 命名空间
为了不和其他样式重名,Less提供命名空间,可以将属性集放入命名空间内。
#public{.input(@px) {width:@px; height:30px }; div>input{#public>.input(100px), color:red}} , 这里的#public就是一个命名空间 - 嵌套规则
指的就是父子元素之间的样式可以进行嵌套,有利于维护
body{background:white; div{color: red}} - Color函数
lighten(red, 10%) 亮度浅10%
darken(red, 10%) 亮度深10%
saturate(red, 10%) 饱和度深10%
desaturate(red, 10%) 饱和度浅10%
fadein(red, 10%) 透明度深10%
fadeout(red, 10%) 透明度浅10%
fade(red, 10%) 表示透明度是第一个参数的10%
spin(red, 10) 表示颜色加深10度
spin(red, -10) 表示颜色减弱10度
mix(red, blue) 表示两个颜色的混合值 - Math函数
round(2.5) 表示四舍五入 结果为3
ceil(2.4) 表示向上取整 结果为 2
floor(2.5) 表示想下去整 结果为3
percentage (0.25) 表示百分之25
如:div{border-radius: percentage(0.5)} 得到的就是50%圆角 - 模式匹配
如: condition(@switch);
condition(red){background: red};
condition(blue){background: blue}; 输入 .condition(red) 得到{background: red} - 导引表达式
.condition(@px)when (@px>=300){background: red};
.condition(@px)when (@px<300) {background: blue};
当输入.condition(400) 得到的是{background: red} - 作用域
Less与JS一样有作用域的概念 会优先在作用域内查找变量 没有再往父类中查找 - javascript 表达式
@var:`“hello” .toUpperCase() “!” - 注释
//表示单行注释 /* */表示多行注释 - import
@import"style.less" import导入模块
第三方模块安装
所有的模块安装都很简单 就是npm install + modelName
例如安装上面router
npm install react-router-dom antd 这样就可以同事下载路由模块和蚂蚁的的移动端模块
相关文章:
前端常用的开工具库
常用的开发工具库 打包工具webpack webpack是现在最流行的打包工具之一,是javaScript的静态模块的打包器。会根据业务逻辑构建一个依赖的关系图,每一个依赖的单元都是一个模块,模块可以是js文件 可以图片资源或者css资源。在使用webpack的时…...
爬虫之数据库存储
在对于爬取数量数量较少时,我们可以将爬虫数据保存于CSV文件或者其他格式的文件中,既简单又方便,但是如果需要存储的数据量大,又要频繁访问这些数据时,就应该考虑将数据保存到数据库中了。目前主流的数据库有关系性数据…...
面试官:你可以用 for of 遍历 Object 吗?
本文以 用 for of遍历 Object 为引 来聊聊 迭代器模式。 什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 ——《设计模式:可复用面向对象软件的基础》 可以说迭代器模式就是为了遍历存在的。提…...
蓝桥杯基础12:BASIC-3试题 字母图形
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDC…...
基于PaddleOCR开发懒人精灵文字识别插件
目的 懒人精灵是 Android 平台上的一款自动化工具,它通过编写 lua 脚本,结合系统的「 无障碍服务 」对 App 进行自动化操作。在文字识别方面它提供的有一款OCR识别插件,但是其中有识别速度慢,插件大的缺点,所以这里将讲…...
PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络
01、实例:DIEN 模拟兴趣演化的序列网络深度兴趣演化网络(Deep Interest Evolution Network,DIEN)是阿里巴巴团队在2018年推出的另一力作,比DIN 多了一个Evolution,即演化的概念。在DIEN 模型结构上比DIN 复杂许多,但大家丝毫不用担心,我们将DIEN 拆解开来详细地说明…...
pyspark null类型 在 json.dumps(null) 之后,会变为字符串‘null‘
在将 hive 数仓数据写入 MySQL 时候,有时我们需将数据转为 json 字符串,然后再存入 MySQL。但 hive 数仓中的 null 类型遇到 json 函数之后会变为 ‘null’ 字符串,这时我们只需在使用 json 函数之前对值进行判断即可,当值为 null…...
LeetCode - 两数相加
题目信息 源地址:两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字…...
Office 2021专业版安装包及激活教程
[软件名称]: Office 2021 [软件大小]: 4.33GB [安装环境]: Win11/Win 10 [软件安装包下载]:https://pan.quark.cn/s/169ed49988b2 “Microsoft Office 2021是Microsoft推出的办公软件。2021年10月5日,Office 2021 for Mac发布,其中包含许多新功能 Micro…...
git版本规范-前端
前言 本文档适用于前端的小伙伴。针对目前前端只有测试环境和生产环境,为更好管理前端代码和适用于自动化部署,编写次文档,有不同意见的小伙伴可以进行讨论。 分支 由于没有目前没有预发环境,简化开发、测试、部署和发布流程&a…...
UEFI Device Path (1): 重新认识Device Path
从事UEFI开发的人员,对UEFI Device Path的概念都有一定了解,但未必都建立了比较系统而深刻的认识。UEFI Device Path的认知仅限于: 1)它是用来表示系统中设备的路径;2) 在UEFI SPEC中定义了它的数据结构和若干操作它的UEFI Protocol。除此以外…...
合成孔径成像的应用及发展
一、引言 合成孔径成像自20世纪50年代提出,应用于雷达成像,历经70年的研发,已经日趋成熟,成功地用于环境资源监测、灾害监测、海事管理及军事等领域。受物理环境制约,合成孔径在声呐成像中的研发与应用起步稍迟&#…...
MyBatis-Plus的基本操作
目录 1、配置文件 1、添加依赖 2、启动类 3、实体类 4、添加Mapper类 5、测试Mapper接口 2、CRUD测试 1、insert添加 2、修改操作 3、删除操作 3、MyBatis-Plus条件构造器 4、knife4j 1、Swagger介绍 2、集成knife4j 3.添加依赖 4 添加knife4j配置类 5、 Cont…...
HTTPAPI使用
1、使用浏览器 1.1、获取当前IP(限制 1200次 /小时) 用浏览器访问 http://ip.hahado.cn/current-ip 输入用户名和密码 [{"ip": "180.102.181.64","ttl": 262.87515091896057} ] "ip": 字段是当前的外网IP ("ip&qu…...
Windos下设置java项目开机自启动
这里是将java项目注册为Windows服务实现开机自启动。 查看.NET framework版本 因为使用winsw工具运行时需要使用.NET framework,基本上现在的win10系统带自带有.NET framework4.0,为了选择合适的版本,我们可以查看本机.NET Framework版本,根…...
(链表)移除链表元素(双指针法)
文章目录前言:问题描述:解题思路(双指针法):代码实现:总结:前言: 此篇是针对链表的经典练习题。 问题描述: 给你一个链表的头节点 head 和一个整数 val ,请…...
Raft协议
文章目录一、目的(与Paxos相同)二、名字来源三、服务器状态四、基本实现1、任期2、RPC调用3、领导者选举4、日志复制5.领导者更替三、Raft与Paxos的区别1.表现形式2.简单性3.领导选举算法一、目的(与Paxos相同) 保证日志完全相同…...
动态规划概述
动态规划概述动态规划的两个要求: 1.最优子结构 例:现有一座10级台阶的楼梯,我们要从下往上走,每次只能跨一步,一步可以往上走1级或者2级台阶,请问一共有多少种解法呢? 台阶数12345678910走法数…...
CPU缓存架构+Disruptor内存队列
文章目录CPU缓存架构Disruptor内存队列CPU缓存架构介绍缓存一致性问题缓存一致性协议MESI协议伪共享问题高性能内存队列DisruptorCPU缓存架构Disruptor内存队列 CPU缓存架构 介绍 cpu与内存的交互数据之间,有一个高速缓存层。有些处理器有3层缓冲,有些…...
Spark SQL join操作详解
一、 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据。分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark SparkSession.builder().appName("aggregations").master("lo…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
