自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 antd表单回显

一、利用initialValue(适用于初始化固定的值)Form 的 initialValues 与 Item 的 initialValue 区别?在大部分场景下,我们总是推荐优先使用 Form 的 initialValues。只有存在动态字段时你才应该使用 Item 的 initialValue。默认值遵循以下规则:1、Form 的 initialValues 拥有最高优先级2、Field 的 initialValue 次之 *. 多个同 name Item 都设置 initialValue

2022-08-23 20:58:19 2168

原创 javascript函数声明和函数表达式的区别

一、首先它们写法不一样,我们先写一个函数声明/函数表达式的dome。 //1、 函数声明 let ceshi1 = fn1(2,3) console.log("ceshi1",ceshi1); function fn1(num1,num2){ return num1 + num2 } // 2、函数表达式 let ceshi2 = fn2(2,3) console.log("ceshi2",ceshi2); let fn2 =

2022-08-23 20:57:51 190

原创 javascript:数据结构——栈

栈结构的概念是一种“后进先出”的数据结构。栈作用在编程语的编译器和内存中保存变量、方法调用栈操作栈结构操作的方法push():进栈pop():出栈peek():检查栈顶元素isEmpty():是否为空clear():清空栈size():栈元素个数js实现栈结构–数组使用类封装栈操作const Stack = function () { const items = []; //私有的,只能在函数内部十使用,外部访问不到 // this.ite

2022-08-23 20:56:39 185

原创 javascript:数据结构——队列

什么是对列是一种“先进先出”的数据结构。(如排队候车,肯定是先排队的人先上车)实际用处如打印机队列操作使用数组实现队列结构使用类封装队列操作const Queue = function () { const items = []; //私有的,只能在函数内部十使用,外部访问不到 // this.items = [];//共有的,外部可以访问 // 入队 this.enQueue = function (element) { items.push

2022-08-23 20:56:17 208

原创 javascript:数据结构——链表

什么是链表?链表是有序的列表, 链表是以节点的方式来存储,是链式存储。每个节点包含item域,next指针(指向下一个节点),即就是链表中的每一个元素都带有下一个元素的位置(next)链表的节点不一定连续存储,是离散的状态双向链表每个链表不仅带有next这一项,还有previous这一项双向循环列表链表操作1、添加(指定添加元素 尾部添加元素)2、移除(指定位置(下标)移除元素 移除元素元素)链表尾添加元素1、如果链表为空的情况下,给链表尾添加元素,同时要把链表头

2022-08-23 20:55:50 347

原创 JavaScript中的事件循环机制

我们知道JavaScript语言是单线程的,至于为啥是单线程?假设有两个线程,一个在页面上新增一个div,另一个线程在页面上删除div,那最终听谁的?那JavaScript怎么实现异步的呢?在JavaScript中,有两类任务:同步任务和异步任务。同步任务:普通的任务,依次从上往下执行。异步任务:又分为宏任务、微任务。宏任务:setTimeout跟setInterval微任务:Promise().then() 这里要注意一下,Promise方法里面的是同步任务,then里面的才是微任务执行

2022-08-23 20:55:28 55

原创 彻底搞懂递归

简单的来说:递归就是函数自己调自己。

2022-08-23 20:55:13 114

原创 javascript:求最大公约数的几种方式

几个数所共有的约数中最大的一个,即可以整除这几个数的最大的数,叫做这几个数的最大公约数。方法一:计算机思维var c;// 判断n1和n2的值,把小的值给n1 if(n1 > n2) {c = n1;n1 = n2;n2 = c;} // 从n1之后开始找最小公倍数 for(var i = n1;i >= 1;} } }方法二:计算机思维var c;// 判断的值 var min = n1 < n2?n1 : n2;i >= 1;i --) {

2022-08-23 20:54:17 1905

原创 javascript深浅拷贝的实现和区别

利用JSON.stringify和JSON.parse来实现,这种方式无法实现对象中方法的深拷贝会显示为undefined。最明显的区别就是:把a的值赋值给b,然后你改变b,看a会不会有变化,如果a变了那就是浅拷贝,如果a没有变那么就是深拷贝。引用类型:拷贝的值会储存在堆中,名字会存在栈中,即就是在栈中存的是指向堆中值的地址。当你在项目中想使用这里的数据,但又不能改变原数据的情况下。通过jQuery的extend方法实现深拷贝。基本类型:拷贝的值和名字都会储存在栈中。所谓拷贝就是赋值,把a的值赋值给b。

2022-08-23 20:53:07 47

原创 javascript判断数据类型的几种方法

Object.prototype.toString.call()对于基本类型和引用类型都可以判断(除了自定义的类)由上述代码看出instanceof对于引用类型的类型检测支持很好,但是无法对基本类型数据进行类型检测。可以看出上面代码中判断[]和{}都是object,所以typeOf()只是适合判断基本的数据类型。基本数据类型:number,undefined,boolean,string,null。注:为什么null打印出来也是object,因为null被认为是对象的占位符。复杂数据类型:object。

2022-08-23 20:52:44 1211 1

原创 数组去重,并且数组的每一项是对象object

function obj2key(obj, keys){ let n = keys.length let key = [] while(n-=1){ key.push(obj[keys[n]]); } return key.join('|'); } //去重操作 export function uniqeByKeys(array,keys){ let arr = []; let hash = {}; for (let

2022-01-07 13:37:17 111

原创 antd设置表单的某个字段的值

antd设置表单的某个字段的值1、创建form的实例const [formObj] = ProForm.useForm()2、给form绑定创建的实例<Form form={formObj} / >3、设置表单的值export default function index(props) { const [formObj] = ProForm.useForm() function dataStr(val) {//获取到子组件传过来的值 formObj.s

2021-10-15 18:43:49 2419

原创 阿里OSS上传文件的两种方式的详解

阿里OSS上传文件一、为什么要使用云存储?1、存储费用低,不占用服务器的磁盘空间2、流量费用低,上传或下载不占用服务器带宽二、怎么使用云存储?方法一:javascript客户签名直传浏览器端直接向oss传文件,这时候需要授权签名。这时候在浏览器端用js直接生成授权签名,这时候带着生成好的签名就可以传给OSS。可问题是签名是需要账号里的密钥,那如果把你的密钥放在浏览器端,拿别人用户就可以随随便便就可以拿到了,所以这种方法不推荐,不是最佳方案。方法二:服务端签名后直传...

2021-10-15 18:05:21 857

原创 Vue的官方指令

Vue的官方指令插值表达式({{}})内容指令(v-text和v-html) 相同点:都是可以让html标签里的内容变成动态的 不同点:v-text和{{}}相当于innerText不会解析html代码,原样输出。 v-html等价于innerHTML:会解析html代码对比v-text和插值({{}})表达式1)、当网络速度慢的时候,插值表达式会在页面上出现 {{}} 的显示,但是指令v-text不会,因为,v-text是自定义属性,最多不做解读。当,标签中的内容全部来自于

2021-10-08 18:28:39 111

原创 mongodb的安装及使用,增删改查的基本命令

mongodb的安装及使用,增删改查的基本命令1、先安装MongoDB2、在安装可视化工具 Robo 3T 1.3.13、找到安装MongoDB目录,进入bin目录打开命令行4、先在f盘创建一个data文件夹,在data里在再创建一个db文件夹输入mongod --dbpath f:\data\db 创建数据库并开启服务5、打开Robo 3T 1.3.1,连接6、创建库7、创建表8、双击表就可以创建表里的内容了增db.集合.save({}) //添加一条db.集合.inse

2021-10-08 17:53:09 138

原创 vscode中使用git,超级无敌简单

vscode中使用git,超级无敌简单一、复制远端地址https://gitee.com/zhaojia77/react-foot.git二、打开vscode1、点击源代码管理——2、点击克隆存储库——3、输入框里粘贴上你的远端地址然后回车选择你所存储的地址4、右下角打开文件三、建你自己分支1、点击右下角的master,选择第一个选项2、输入你的分支名比如叫abc3、把你创建的分支更新到远端仓库,这时候你刷新你的远端仓库,就有了你新建的abc分支,并且已经同步了你的代码四、在a

2021-10-08 17:44:23 14806 1

原创 github在项目中使用的过程,包括账号的创建,密钥的查看

项目中使用github的过程,包括账号的创建,密钥的查看官网:https://github.com/1、 注册账号和密码2、 创建好了之后,新建一个仓库3、 填写仓库名称及说明,创建仓库即可4、 在你项目的跟目录,右键打开Git Bash Here(前提是你的电脑安装了git)5、 新建远端仓库origin,并查看是否创建成功。这里写的是你github上创建的仓库的SSH(如果使用https的话需要每次都输入用户名和密码)这里写的是你github上创建的仓库的SSH(如果使用htt

2021-10-08 17:33:33 821

转载 前端将json数据和动态数组数据转换为Excel文件下载

前端将json数据和动态数组数据转换为Excel文件下载https://blog.csdn.net/friend_ship/article/details/100582537

2021-09-30 10:29:00 241

原创 React路由提供常用组件的详解

路由提供组件的详解组件及其作用:组件作用路由模式BrowserRouter约定模式 为 history,使用 HTML5 提供的 history API 来保持 UI 和 URL 的同步路由模式HashRouter约定模式 为 hash,使用 URL 的 hash 来保持 UI 和URL 的同步声明式跳转NavLink声明式跳转 还可以约定 路由激活状态声明式跳转Link声明式跳转 无激活状态重定向Redirect重定向 ~~

2021-07-18 17:48:49 198

原创 React路由里exact和switch的区别

React路由里exact和switch的区别exact属性react的路由匹配默认是模糊的,包容的,如果想使用严格匹配,那么,把Route组件的exact属性设置为true。<Route exact={true} path="/" component={App} />假如,有如下路由配置:<BrowserRouter> <Route path="/" component={App} /> <Route path="/My" compon

2021-07-18 17:46:40 627

原创 React的高阶组件(HOC)的构建与应用

高阶组件​高阶组件(HOC)是react中对组件逻辑进行重用的高级技术。但高阶组件本身并不是ReactAPI。它只是一种模式,这种模式是由react自身的组合性质必然产生的。​具体而言,高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件,高阶组件会对传入的组件做一些通用的处理。比如:我们希望给组件的的下方增加一个版权信息,那么就可以使用高阶组件。把原始组件传入,然后,给组件增加一个版权信息后,再返回。​高阶组件是通过将原组件 包裹(wrapping) 在容器组件(cont

2021-07-18 17:39:20 345

原创 React路由传参常见的几种方式

React路由传参解释:路由传参完成的是组件之间的数据传递(组件传值)1)、params​ 路由配置:<Route path='/Inbox/:id' component={Inbox} />​ 路由跳转(传值):声明式导航:<NavLink to={'/Inbox/01008'} >铅笔</NavLink>编程式导航:this.props.history.push( '/Inbox/'+'01008' )​ 取值:thi

2021-07-18 17:34:40 5734

原创 React路由的配置和基本使用

**React路由的基本使用步骤1)、下载路由模块:npm install --save react-router-dom2)、创建若干个组件创建components文件夹,并建立若干个组件如:About.js,InBox.js,Goodslist,3)、路由配置:src/index.js//引入模块import { BrowserRouter, Route } from "react-router-dom";ReactDOM.render( <BrowserRouter

2021-07-18 17:28:24 185

原创 vue里axios的封装

1)、创建目录和文件:utils/service.js,封装axios的请求拦截器和全局的配置,axios的post,get请求, import axios from "axios"// 创建axios 赋值给常量service const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, timeout: 100000 headers: { "Content-Type": "app

2021-07-04 19:15:28 106

原创 跨域的解决方案(反向代理)

反向代理在前后端分离开发的场景,前端有个服务器(提供页面)。后端也有个服务器(提供接口)。1、开发环境,前端要连后端的接口,就会出现跨域问题。2、生产(发布)环境:​ 1)、如果还是前后端分离(在不同的服务器上)。依然有跨域问题(nginx)​ 2)、如果前后端代码在一起(一个服务器),不存在跨域问题跨域的解决方案1)、jsonp2)、CORS(后端配合) :cross origin resource sharing 后端解决跨域的方案php 中,这么写:h

2021-07-04 17:57:30 5910 1

原创 状态(数据)管理(VueX)

状态(数据)管理(VueX)官网一、vueX的作用1、vuex能够保存全局数据,供整个应用使用2、vuex保存的数据是响应式的3、vuex保存的数据可以**跟踪状态的变化*二、vueX的核心概念(创建vueX.store对象里的配置项)state : 数据仓库 ,存储所有的 共享数据 ,相当于vue组件里的data Getter :在state的基础上 派生的数据, 相当于vue组件里 computedMutation:修改state的数据时,用mutatio

2021-07-04 17:08:23 220

原创 express安装脚手架

express脚手架1.新建文件夹node2.在建的文件夹下打开cmd命令窗口全局安装:npm i express -g3. 再安装express本地依赖 npm i express --save4. npm init -y5. 脚手架全局环境npm install express-generator -g6.全局安装环境npm install express –g7.测试安装成功与否express -h8.然后express -e 创建脚手架的项目10.再按照提示安装依赖(

2021-07-03 15:18:44 362

原创 mysql数据库的导入和导出

mysql数据库的导入和导出导出mysql文件1、 鼠标放在数据库上点击右键选择输出,sql文件2、 选择你要保存的地址,点击保存。3、 点击运行4、 最后点击关闭Mysql导入文件1、 新建一个数据库2、 在新建的数据库上点击右键,选择输入sql文件3、 找到你要导入文件的路径。直接点击打开,就ok了...

2021-07-03 15:02:48 325

原创 js用冒泡解释回调函数

回调函数的概念就是自己定义一个函数,然后再调用。从而实现这个函数的程序内容,然后把这个函数作为另一个函数的参数传入。js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数。回调函数的解释因为函数实际上是一种对象,它可以存储在变量中,通过参数传递给另一个函数,在函数内部创建,从函数中返回结果值”,因为函数是内置对象,我们可以将它作为参数传递给另一个函数,到函数中执行,甚至执行后将它返回,它一直被看作是一种难懂的技术。如:普通的冒

2021-05-13 23:24:16 165 2

原创 javascipt中ECMAS5新增的数组方法

关于es5中数组新增方法的总结一、索引方法1、indexOf 在数组中查找一个数所在的位置,输出的是下标 var arr = [1,2,t,5,7,8]; var a= arr.indexOf(3); console.log(a);//输出的是t的下标,是2二、迭代器方法1、forEach()把数组中的每个元素循环一遍,并做处理。处理的就是原数组的元素。参数:是一个回调函数,没有返回值。 function fn(){ var arr = [1,2,3,4,5];

2021-05-13 22:19:30 77

原创 javascript:判断一个数组是不是回文数组

判断一个数组是不是回文数组什么是回文数组?解释:我们都是知道回文串吧!其实回文数组和回文串是一样的,都是第一个元素和最后一个元素一样,第二个元素和倒数第二个元素一样,以此类推。如:[1,2,3,2,1],[1,2,2,1]都是回文数组回文数组的封装功能:判断一个数组是不是回文数组参数:要判断的数组返回值:true:是回文数组;false表示不是回文数组代码实现写法一:function mirror(arr) { var start = 0; var end = ar

2021-05-11 23:16:54 1264

原创 javascript:判定一个字符串是不是回文串

判断一个字符串是不是回文串回文串的概念“回文串”是一个正读和反读都一样的字符串,比如“1234321”或者“noon”等等就是回文串。封装函数功能:判断字符是否为回文串参数:字符串返回值:true或false(是或者不是)代码部分:function romeString(str) { var leng = str.length - 1 for (var i = 0; i < leng; i++, leng--) { if (str.charCodeA

2021-05-11 23:05:45 588

原创 javascript处理数组去重

js原生数组去重数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的4种,面试官很有可能对你刮目相看。在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能回被问到。注:写的匆忙,加上这几天有点忙,还没有非常认真核对过,不过思路是没有问题,可能一些小细节出错而已。## - 数组去重方法一:双层循环,然后splice去重(ES5中最常用)

2021-05-11 22:56:36 58

原创 javaScript中字符串官方函数substring()的封装

substring()的封装解释官方函数:substring()的特点:1、两个参数:起始下标,结束下标2、截取的子串中:包含起始下标不包含结束下标var str = "今晚月色真美";var ption = str.substring(2,5);console.log(ption);//运行结果为:月色真3、结束下标可以写,如果不写默认下标那么就截取到字符串的最后。var str = "今晚月色真美";var ption = str.substring(2);con

2021-05-11 22:30:02 148

原创 javaScript中字符串官方函数split()封装

**javaScript中split()封装**参数:字符串,分隔符// 返回值:数组// split()把字符串分割成数组,参数为分隔符,返回的是数组// 思路:字符串:“how are you”,起始是从i=0的位置开始截取,循环到i=2时碰到第一个空格就把空格之前的字符放进数组里,作为数组的第一个元素,下一次是从当前空格的下标加一开始循环。碰到下一个空格然后再截取,以此类推。直到彭代最后一个空格的时候,就把空格之后的字符作为数组的最后一个元素。...

2021-05-11 21:46:23 508

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除