自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL数据库操作

数据库(database)是用来组织,存储和管理数据的仓库。当今世界是一个充满着数据的互联网世界,充斥着大量的数据,数据来源很多,比如出行记录,消费记录,浏览的网页,发送的消息等,除了文本类型的数据,图像,音乐都是数据。...

2022-07-31 12:13:25 205 1

原创 浏览器缓存

前端必看浏览器缓存

2022-07-28 23:22:35 162

原创 搞懂redux一篇就够了

学习redux一篇就够了

2022-07-28 23:04:53 1852

原创 前端面试题-柯里化

在网上看到了一道关于柯里化的经典面试题。

2022-07-28 00:06:15 197

原创 umi后台项目导航自定义icon问题

后台自定义导航icon

2022-07-27 23:36:07 1955

原创 React事件与原生DOM事件的不同

React事件

2022-07-27 22:40:24 434

原创 React15中的栈调和diff算法

虚拟dom和diff算法

2022-07-27 22:23:13 237

原创 使用Context API维护全局状态

进一步认识Context API

2022-07-26 23:43:44 174

原创 认识虚拟dom

进一步认识虚拟dom

2022-07-26 23:23:24 99

原创 jsx的实现

进一步认识jsx

2022-07-26 23:02:20 242

原创 React 15架构

在Reconciler中,mount的组件会调用mountComponent(opensnewwindow),update的组件会调用updateComponent(opensnewwindow)。这两个方法都会递归更新子组件。ReactArt(opensnewwindow)渲染器,渲染到Canvas,SVG或VML(IE8)当层级很深时,递归更新时间超过了16ms,用户交互就会卡顿。在每次更新发生时,Renderer接到Reconciler通知,将变化的组件渲染在当前宿主环境。...

2022-07-20 00:23:19 169

原创 vue 实现词云图

vue 实现词云图准备工作:echarts-wordcloud的git仓库地址https://github.com/ecomfe/echarts-wordcloud2.echarts官方文档https://echarts.apache.org/zh/index.html3.依赖版本号“echarts”: “^5.0.1”,“echarts-wordcloud”: “^2.0.0”,版本号可以根据echarts-wordcloud依赖里面的版本号找到对应echarts的版本,否则很容易出

2021-10-08 16:57:57 2858 3

原创 js 实现自定义签名

通过canvas实现自定义签名List item// 结构 <div id="myChart" :style="{width: '600px', height: '300px'}"></div> <button @click="submit"> 提交 </button> // js部分function init(){ let canvas = document.getElementById('can') canvas.

2021-08-12 10:20:43 239

原创 二次封装axios

二次封装axiosimport axios from "axios"import {Message} from "element-ui" //引入element中的弹窗,这个不是必须的可根据项目来import Qs from 'qs' //(如果只是get请求就不需要引qs)axios.defaults.widthCredentials = false // 设置跨域 false为不跨域axios.defaults.headers.common['token'] = localstor

2021-08-02 09:28:19 69

原创 vue项目中使用echarts百度地图不显示问题和地图密钥配置

在项目中使用echarts地图不显示现在的效果就是echarts文档中的效果,发现按照他的写法全部 cv过来之后地图显示不出来只显示title部分。处理方式1.在vue main.js项目中引入地图,这里直接截图2.在入口文件index.html中引入这样在项目里面就可以正常的使用地图来实现炫酷的效果了...

2021-07-16 17:07:25 1980 1

原创 复习 redux 总结

redux 三大核心 redux是一个js容器,用于全局的状态管理 1。单一数据源 整个应用的 state 存储在 一颗object tree 中,并且这个object tree 只存在于唯一一个store中。 2.state是只读的 唯一能改变state的方法就是触发action,action是一个用于描述已发生事情的普通对象 这样就确保了试图和网络请求都不能直接去修改state 调用方式 store.dispatch({type:"ADD",index:1}) 3.使用纯函数来执

2021-06-27 11:26:31 78

原创 js 去除掉对象中的null,‘‘,[],{}

使用场景:提交表单的时候去掉一些无用的参数 function removeEmptyField(obj) { var newObj = {} if (typeof obj === 'string') { obj = JSON.parse(obj) } if (obj instanceof Array) { newObj = [] } if (obj instanceof Object) { for (var attr.

2021-06-16 10:15:13 673

原创 react 和 vue

对vue和react的理解共同点1.都是数据驱动视图,当数据发生改变 数据更新2.都是利用虚拟DOM 进行diff 比较法,比较更新前后的改变从而重新渲染DOM区别1.vue的特点就是具有封装好的指令,非常的简单,像 v-if,v-show 在开发的时候用起来十分的方便 好上手,学习成本比较低2.react 就没有 像vue 那种封装好的指令,它使用的是jsx语法,然后配合 ES6中的map 和 filter ,for…of,for…ea ch 相对使用起来复杂一点3.vue 中 具有计算

2021-05-05 19:50:38 77

原创 js方法 reduce 用法

语法arr.reduce(callback,[initialValue])参数// 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组 let array = [1, 2, 3, 4, 5]; let aum = array.reduce((sum, cur) => sum + cur, 0) console.log(aum,array,'..

2021-05-05 19:47:05 90

原创 前端面试常见笔试题

1.防抖 // 防抖频繁触发事件执行后在执行事件 let div = document.querySelector('.box'); const debounce = (func, wait) => { let timer; return function () { clearTimeout(timer); timer = setTimeout(() => { func(); },

2021-05-05 19:44:51 119

原创 js基础 判断数据类型

数据类型检测typeof 检测数据类型的逻辑运算符instanceof 检测是否为某个类的实例constructor 检测构造函数Object.prototype.toString.call 检测数据类型typeof [ value ] 返回当前值得数据类型 “数据类型”返回结果都是字符串局限性:typeof null => "object" 不可以细分对象类型,数组对象和普通对象都为 “object” typeof 默认认为前几位为0的为object ,nu

2021-03-04 17:27:15 98 1

原创 js 常见错误小结

标题常见内置错误error 所有错误的父类引用类型不存在 ReferenceError console.log(a) // ReferenceError: a is not definedTypeError 数据类型不存在let b = null; // b={}; // b.xxx()console.log(b.xx) //TypeError: Cannot read property 'xx' of null/function/undefined RangeErr

2021-02-22 14:21:12 132

原创 js数据处理一维数组对象转换为二维数组对象

//我这里用的hooks写法 const [groupList, setGroupList] = useState([{ name: '', children: [] }])Ï //Ï当前数据结构 const obj = [ { name: '花花', value: '1', key: '1',group:'明星' }, { name: '姚晨', value: '2', key: '2',group:'明星' }, { name: '小绿', value: '3',

2021-02-02 16:26:39 1247

原创 Promise封装AJAX

创建一个自定义列表原生写法 //1.创建对象 const xhr = new XMLHttpRequest(); //2.初始化 xhr.open('get',"接口地址"); //3.发送 xhr.send(); //4.绑定事件处理响应结果 xhr.onreadystatechange= function(){ if(xhr.readyState===4){ //判断响应码为200-299为成功 if(xhr.status>=200&&xhr

2021-01-21 17:30:46 57

原创 js实现css的animation效果

使用需求:实现css的animation的帧动画效果,使用css做在ios手机上面会一闪一闪的,岁就用到了js的写法,之前在网上看了好多种方法,大多数都是把图片地址放到一个数组里面,然后通过循环来改变图片的地址的方式,这种方式可以看到页面会一直请求图片,造成死循环我的解决方案 :let imgUrl = './jpg/';let index = [1,24];let maxLength = index[1] - indexLength[0] + 1;//loadinglet eleDi

2020-11-13 11:06:06 544

原创 移动端rem布局的实现

js实现rem布局支持移动端和pc端的H5页面,直接上代码 !(function(win, doc) { function setFontSize() { var winWidth = window.innerWidth; doc.documentElement.style.fontSize = (winWidth / 750) * 100 + 'px'; // 移动端一

2020-11-13 10:59:25 96

原创 实现H5页面微信分享功能

实现H5页面微信分享功能一.通过微信打开的H5页面实现微信分享功能首先在公众号管理后台“公众号设置”的“功能设置”里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE、BAE等平台。此外,自定义分享功能需要通过微信认证才能使用,没有认证的可以跟关系好的朋友借用权限,在他的JS接口安全域名设置这里填上你的域名和共享同一个开发者ID。在需要调用JS接口的页面引入微信JSSDK的JS文件:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js,这个

2020-11-12 17:27:42 5161

原创 react 使用 swiper轮播图

swiper在react中的使用npm下载插件npm i swiper --save现在默认最新版本 是 “6.0.4”这个版本在引入css样式的时候和之前版本引入路径不同:之前版本:import “swiper/css/swiper.css”现在版本:import ‘swiper/swiper-bundle.min.css’如果有多个轮播图最好写到组件里面写在render中的结构,类名都是swiper引入的css样式 render () { return (

2020-07-23 20:04:16 1335

原创 超全的SQL语句总结(2)

超全的SQL语句总结(2)SQL查询语句(五)查询所有字段的所有数据SELECT * 查询效率是最低的SELECT * FROM 表名指定查询字段,只显示查询字段的数据SELECT id,name FROM 表名;查询结果,默认使用的是表结构中的字段名可以给字段名设定别名SELECT id as 序号,name as 姓名 FROM 表名;约束条件 WHERE 的查询对于字段的约束条件,WHERE针对的都是字段的约束SELECT * FROM user2 W

2020-05-27 23:36:07 384

原创 超全的SQL语句总结(1)

SQL语句的总结(一)SQL语句的增删改查库操作: database创建 :CREATE DATABASE IF NOT EXISTS 库名DEFAULT CHARSET utf8;创建库,并且定义库名 默认编码格式是 utf8使用 : USE 库名;指定使用的 库在操作表,字段,数据之前,一定要先指定使用的 库因为在不同的库当中,可以有想用的表,字段,数据存储如果不指定使用的 库 获取内容或者进行操作,会报错修改 : ALERT DATABASE 库名DEFAU

2020-05-25 22:49:01 165

原创 最最基础的 Linux 命令

在 cmd 命令行 或者 终端中 可以运行 node.js 命令 也可以运行 Linux 命令 Linux 命令主要是后端程序员,使用的程序命令 我们前端程序员,稍微了解即可 Linux 命令 本质上是 当年的 DOS 命令发展而来的 我们必须要掌握的 命令 要执行运行 node程序 必须要将 盘符路径切换到正确的路径 切换盘符,以及文件路径的命令切换盘符盘符: 回车 可以切换盘符切换文件夹路径cd ...

2020-05-08 20:32:38 124 3

原创 jQuery的ajax全局钩子函数

jQuery的 ajax 全局钩子函数所谓的钩子函数 , 是和 某个程序绑定的函数当这个程序执行到不同阶段,不同步骤时,执行不同的函数程序当前的 ajax 钩子函数,就是和 ajax程序绑定的函数根据的是 ajax的 不同步骤,来执行不同的函数ajax的基本步骤1, 声明定义一个ajax对象2, 定义 open()3, 定义 send()4, 接收响应体内容钩子函数:...

2020-05-06 21:21:46 260

原创 jQuery的深浅拷贝

jQuery的深浅拷贝深浅拷贝的概念复制:引用数据类型时 (主要是对象和数组) 才会考虑深浅拷贝问题浅拷贝 — 拷贝复制引用数据类型的存储地址执行浅拷贝,执行的变量之前,相互有关联一个操作修改存储的数据内容,另一个也会影响深拷贝 — 拷贝复制引用数据类型的具体数值执行浅拷贝,执行的变量之前,相互没有关联一个操作修改存储的数据内容,另一个不会影响有待解...

2020-05-06 20:42:46 221

原创 jQuery封装ajax请求总结

jQuery封装ajax请求优点:在 jQuery中 给我们封装了 ajax请求不用考虑 兼容,跨域等问题, jQuery全都给我们解决了只需要在设定请求时,设定不同的参数,就可以完成不同的请求一. get请求方式参数有4个参数,必填参数是 url地址 其他参数都是选填参数,可以没有参数的形式是对象形式$.get({url : 地址(必填)data : 携带的参...

2020-05-06 08:50:22 446

原创 ajax的最基本原理及封装

ajax的最基本原理及封装一.ajax请求总结 ajax请求的本质 通过JavaScript方式,与后端程序以及数据库,进行交互 之前的方式是 form表单 或者 超链接 都属于 HTML方式 ajax请求的基本过程原理 通过 ajax请求 是JavaScript定义好的程序 ...

2020-05-05 20:44:54 261

原创 面向对象的基本思想

面向对象的基本思想 面向对象的基本思想基本思路就是,创建一个对象,给这个对象,添加上 属性和属性值,还有函数等方法之后通过操作这个对象,来完成需要的效 果先通过一个函数的方法,来创建对象 function createObj(){ // 创建对象 const obj = {}; // 给对象添加属性和属性值...

2020-04-19 23:37:09 582

原创 JS 深浅拷贝

深浅拷贝的原理深拷贝与浅拷贝的区别如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝。直接将一个引用数据类型的地址,赋值给另一个变量存储的,称为浅拷贝两个变量存储的是相同的内存地址,一个操作,另一个也会改变不想两个变量操作数组,都会改变,想建立一个独立的变量,只是存储相同的数据...

2020-03-26 13:29:28 58

原创 选择排序的执行原理

选择排序的执行原理 选择排序 先定义循环的起始位置默认为最小值所在位置 从起始位置下一个位置开始,执行循环 如果有位置上的数值,小于,存储索引位置上的数值 就存储这个位置的索引值 循环结束,比较存储的索...

2020-03-26 13:04:46 135

原创 冒泡排序的执行原理

冒泡排序的执行原理 学习冒泡的目的: 实际项目中,前端,暂时没有实际应用的场景 学习算法的目的是为了,开阔我们的思路和考虑问题的方法模式 最主要的是掌握所谓算法中的核心内容作用: 将数组中的数值,按照执行的顺序,从小到大排序原理: 相邻的两个单位,比较存储的数据 如果第一个单元的数据较大,就将两个相邻单元,交换存储数据 过程: ...

2020-03-26 13:00:04 181

原创 数字类型中的NaN

NaNNaN not a number 不是一个数值NaN 表示存储的数据的数据类型,不是一个数值如果有非数值参与计算,结果就是 NaN两个变量中存储的数据,都不是数值执行结果就是NaN v ar str1 = '北京'; var str2 = '上海'; var res1 = str1 - str2; conso...

2020-03-26 12:44:48 688

lietable.vue

lietable.vue

2022-03-18

空空如也

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

TA关注的人

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