前端常用的开工具库
常用的开发工具库
打包工具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…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
