- 博客(51)
- 收藏
- 关注
原创 下载xlsx表格 和 上传xlsx表格 方法 适用于vue react
exportXlsx函数下载xlsx,安装 npm i downxlsxdog -S引入 import { exportXlsx } from ‘downxlsxdog’调用格式 exportXlsx([‘表头字段’, ‘表头’],[{ key: ‘数据’, value: ‘数据’ }, ‘下载完成的名称.xlsx’]), xlsx后缀必填选项 。uploadData函数上传xlsx,引入 import { uploadData } from ‘downxlsxdog’调用格式 uplo
2020-08-28 15:13:08
1306
2
原创 好用的翻牌器,定时器适用于react vue 等等
// npm i -S react-countup// import CountUp from 'react-countup'; <CountUp start={0} duration={2} separator=',' decimals={2} end={1000000.89} /> // 常用的集中属性// start 开始时间 duration 持续时间 separator 千分位隔离 decimals 小数位 end 结束时间...
2020-06-23 15:22:53
1139
3
原创 立即执行函数表达式
立即执行函数主要是为了防止全局变量污染const abc = (() => {console.log(’‘33333’’)})()
2020-06-12 16:20:29
209
原创 useState useEffect
hookimport React, { useState } from ‘react’const [count, setCount] = useState(1) // setCount调用改变值得方法例如 setCount(1) count取值即可import React, { useEffect } from ‘react’useEffect(() => {})[a,b] // 当ab改变时才会执行。如果不传的话相当于componentDidUpdate。...
2020-06-11 16:00:42
216
原创 代替componentWillReceiveProps的static getDerivedStateFromProps
代替componentWillReceiveProps(每次调用都会更新一下state。更新无关的父组件的state,声明周期会一直调用)// 把props里面的值放到state里面调用static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.wy !== prevState.wy) { return { isLogin: nextProps.tx, }; } return null
2020-06-11 15:38:13
403
原创 dispath异步处理
dispath在请求接口后如果想要做某些判断的话,就在dispath({}).then(() => { alert(’兄弟们,虽然不是同一时间,但是同一地点‘))
2020-06-11 15:12:23
698
原创 请求方式拦截器
request.interceptors.request.use((url, options) => {const data = {url,options: { …options },};if (data.options.method.toUpperCase() === ‘POST’) {data.options.data = {tx: ‘’,…(op.options.data || {}),};}if (data.options.method.toUpperCase() ===
2020-06-11 15:01:19
846
原创 es6多层解构
对象解构const testData = { name:‘wy’,age:{tx:‘kq’} }const { age:{ tx } } = testDataalert(tx)数组解构const testData = [ {‘wy’:12}, {‘tx’: 13}]const [wy, tx] = testDataalert(wy,tx)
2020-06-11 14:55:43
1563
原创 http和https的差别
1.https不是免费的,需要花钱买证书。2.https是通过ssl加密传输的。安全性比较高。而http是明文传输。3.http用的端口是80,https是443http就是一种网络协议,它的客户端和服务器交流还是基于TCP协议。...
2019-08-27 18:14:48
214
原创 伪类元素本质
什么是伪类元素呢??????伪类元素的目的就是为了在选择器上实现需要的效果。伪类元素本质就是虽然逻辑上是元素的子标签,但实际上缺不存在文档树中。...
2019-08-18 17:27:17
165
原创 数组里面常用的一些方法总结
push()数组尾部添加pop()数组尾部删除shift()数组头部删除unshift()数组头部添加reverse() 反转数组、concat() 连接接数组slice(start,end)数组截取arr.splice(index , howmany , item1,…,itemX)arr.splice(index , howmany)截取制定元素howmany不为0arr.s...
2019-08-17 16:48:08
206
原创 浏览器进程与线程
浏览器是多进程(进程是cpu资源分配的最小单位)的,打开一个页面就相当于一个进程,有单线程(线程是cpu调度的最小单位)的进程,也有多线程的进程。浏览器进程中,最重要的及时渲染进程(浏览器内核)1…GUI渲染线程2.JS引擎线程3.事件触发线程4.定时触发器线程5.异步http请求线程...
2019-08-15 20:28:36
199
原创 async await
async 关键字放到函数前面 , 表示这个函数是异步的 ,不会阻碍后面任务的执行(返回是一个promise对象) async function timecheck() { return 'hello world' }console.log( timecheck())await 顾名思义 就是表示代码执行到这的时候需要等待await后面的任务执行完,才会...
2019-08-15 20:07:46
223
原创 session和cookie和tooken
cookie:由于http协议是无状态的,第一次向服务器发送请求后,信息并不会保存,下一次在发送请求,服务器就识别不了。cookie就是第一次发送请求后,后端返回给前端的标识。下一次发送请求带上coolie即可。(size:4kb)session:cookie是存储在本地浏览器,而session存储在服务器。(服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后sessi...
2019-08-15 19:44:44
628
原创 前端页面性能优化
1.压缩css,js体积。2.尽量减少不必要的dom操作。3.图片不要保存在本地,尽量用外链4.尽量吧可以重复使用的部分抽离成组件。5.能缓存的请求,尽量缓存到本地。6.不要引入太多web字体...
2019-08-13 17:42:09
181
原创 伪类元素
常用的伪类元素清除浮动a:after{ content:"."; display:block; height:0; clear:both; visibility:hidden; }在支持 CSS 的浏览器中...
2019-08-13 12:08:51
528
原创 dom bom
1.BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。2.DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。...
2019-08-07 11:52:07
233
原创 js作用域
1.概念全局变量:函数外声明的变量,称为全局变量局部变量:函数内部使用var声明的变量,称为局部变量全局变量访问不了函数内部变量,因为每次函数执行完后,就会把内部变量清除。2.在js中只有函数作用域,也就是说,只有局部变量。if/for等有{}的结构体,并不能具备自己的作用域。3.可以使用闭包让函数d可以访问abc里面的变量函数变量会被保存在内存中(abc是d的父函数,相当于abc...
2019-08-07 11:17:44
242
原创 浏览器缓存
浏览器缓存分类:1.强缓存()不会向服务器发送请求,直接缓存(强缓存是利用http的返回头中的Expires或者Cache-Control两个字段来控制的,用来表示资源的缓存时间)2.协商缓存会向服务器发送请求(服务器根据http头信息中的Last-Modify/If-Modify-Since或Etag/If-None-Match来判断是否命中协商缓存)...
2019-08-05 20:15:18
144
原创 js异步(队列)
1.js是单线程的(一个时间内只能干一件事)2. 存在任务队列 首先执行同步的,执行完再执行异步3.for (var i = 0; i < 4; i++) { setTimeout(function () { console.log(i); }, 1000); } 打印4次4 因为setTime...
2019-08-05 19:42:25
863
原创 csrf攻击和xss(万恶之源)
1.可视化图直观如图所示,用户首先要登录网站,然后网站生成一个cookie,下发给用户。用户禁不住诱惑,访问b网站,然后点击了不该点击的。那么用户就不经意之间进入了a网站。网站通过这种方法,调用bug接口,实现侵犯正义。(添加token认证即可)xss :比如用户在输入框中输入一段script标签,进而实现侵犯。就是类似于这种方法。解决放法:转义标签就可以。...
2019-08-05 19:33:19
196
原创 通信
1.ajax实现过程var request = new XMLHttpRequest()传建一个请求对象request.open('get', '',false)配置请求里面的信息request.onreadystatechange = function () {设置一个处理请求信息的函数 if(request.readyState == 4&&request....
2019-08-05 19:25:09
177
原创 js中的面向对象。
1.js中的面向对象就是类,而类中关键的就是继承2.首先声明一个类var Gandparent = function(){this.game = “play”}3.构造函数实现继承<script type="text/javascript"> function Grandparent () { this.name = "zhangsan" ...
2019-08-05 18:59:17
145
原创 原型链
1.构造函数的实例会自动正在原型上寻找方法2.M.proto === Function.prototype(true) M构造函数是Function New出来的实例3.new一个对象被new的时候,它继承了构造函数的原型(M.prototype)同时this的上下文指向了new出来的实例...
2019-08-05 18:12:22
114
原创 http协议
1.http协议的特点1.简单快速:向服务器发送请求时,只需要请求方式和路径即可2.灵活:可以传输任意类型的数据。3.无连接:连接一次服务器就断开了4.无状态:请求的信息不会缓存,下一次请求还要重新发起2.http请求和响应1.http请求组成: 请求行(包含url,要传输的数据,请求方法,http协议)+请求头(一些常见的key:value)+空行(表示请求头结束 这个空行是必...
2019-08-05 17:54:30
105
原创 dom事件的捕获和冒泡
1.DOM事件捕获的具体流程window->document(根节点)->html->body->具体元素2.DOM自定义事件 var eve = new Event('test'); ev.addEventListener('test', function () { console.log('test dispat...
2019-08-05 17:16:18
161
原创 css方面的知识
1.css的三栏布局:总共有5中方法:1.flaot使用float进行布局2.flex布局:中间元素flex:13.定位4.table布局:子元素display:table-cell5.网格布局width:100%;display: grid;grid-template-rows: 100px;grid-template-columns: 300px auto 300px;...
2019-08-05 16:55:50
116
原创 undefined 和 null
最近有好多小伙伴问我 undefined 和 null 的区别,那我就在这总结一下吧1.先从类型说起console.log(typeof(undefined)); //undefinedconsole.log(typeof(null)); //object...
2019-08-02 14:01:45
173
原创 js中的call和play
call传参和apply传参的方式不同b.call(a,1,2);var arr = [1,2];b.apply(a,arr);
2019-08-01 19:07:47
2017
原创 promise简述
1.promise的基本格式new Promise(test).then(function (result) {//test是函数 console.log('成功:' + result);}).catch(function (reason) { console.log('失败:' + reason);});2.有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何...
2019-08-01 12:09:35
467
原创 css遇到的问题,以及解决方案
1.常用的几个图片类型:1.png是便携式网络图片(Portable Network Graphics)是一种无损数据压缩位图文件格式.优点是:压缩比高,色彩好。 大多数地方都可以用。2.jpg是一种针对相片使用的一种失真压缩方法,是一种破坏性的压缩,在色调及颜色平滑变化做的不错。在www上,被用来储存和传输照片的格式。3.gif是一种位图文件格式,以8位色重现真色彩的图像。可以实现动画...
2019-07-30 17:37:43
608
原创 常用通用的正则表达式(手机号,邮箱)
手机号:(/^1[3456789]\d{9}$/.test(phone))邮箱:/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/身份证:/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|...
2019-07-19 17:45:40
2493
原创 js中的几种排序
1.冒泡排序比较简单的写法: function bubbleArra(a) { let arr = a; let length = arr.length; while (length) { 数组有多长就循环几次进行左右比较,每次比较就会找到一个最大的放到最后 ...
2019-07-19 15:37:40
2713
原创 vue 中的keep-alive
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。<keep-alive> <component> <!-- 该组件将被缓存! --> </component></keep-alive><keep-alive include="a">//name = a的组建...
2019-07-19 13:55:24
145
原创 关于vue的几点面试题(vue双向数据绑定和深拷贝浅拷贝之间的区别)
1.vue的双向数据绑定:实现mvvm的双向绑定,是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。vue的双向数据绑定整合了整合Observer,Compile和Watcher三者,通过Observer监听数据的变化,通过Compile来编辑解析指令,通过...
2019-07-19 11:50:46
1428
1
翻译 随机打乱数组顺序
function randomsort(a, b) {return Math.random() > .5 ? -1 : 1; } this.questionArray.sort(randomsort)
2019-07-18 18:27:17
1018
原创 微信小程序ios低版本 flex-wrap 不生效解决方案
可以换种思路 ,直接用display:inline-block 给元素一定的宽度百分比;例如一行三个元素:子元素设置with:33.3%即可
2019-07-18 17:19:14
1446
原创 vue刷新初始化组建里面的data
Object.assign(this.data,this.data, this.data,this.options.data()) 即可如果数据没有渲染成功 this.$forceUpdate();
2019-07-18 16:44:21
436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人