自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js 根据链接下载 excel 文件

js 根据链接下载 excel 文件const fileDownload = (content, name = 'fileName', suffix = 'xls') => { // 添加字节序标识,避免乱码 // const data = `\uFEFF${content}`; const blob = new Blob([content], { type: 'application/vnd.ms-excel,charset=UTF-8' });

2020-11-05 10:46:06 2112

原创 浏览器缓存

浏览器缓存强缓存强缓存阶段不需要发送网络请求强缓存取决于http 的响应头的两个属性,expires(http/1.0)和cache-control(http/1.1)。expires是一个服务器返回的时间,如果浏览器检测到这个日期比当前时间小,那就请求。cache-control:max-age=3600。这个是表明过期时间,缓存最长的存在时间因为版本问题,cache-control 优先级比expires 高cache-contro有以下值:- private:只能

2020-08-31 17:14:47 136

原创 react合成事件和bind ,call,apply的区别和联系

1.react 的合成事件react是虚拟dom 创建好以后挂在到真实的dom 上,所以react 中的事件(点击,滑动,触摸)机制也是虚拟的,react 为了防止滥用dom 的事件,同时屏蔽不同浏览器的差异,实现了一种合成事件层。在react 中当dom 层被点击的时候,然后事件冒泡直至document 层,document监听了所有的点击事件然后再响应在组件初始化的时候,绑定在组件上响应的方法。至此,便引出了bind 方法。原生事件无论是冒泡还是捕获事件,都会比react 的合成事件执行早2.a

2020-08-16 17:44:59 1250

原创 hooks避坑指南

使用usestate() 定义的变量是全局可用的1.问题来源普通的组件<Inputstyle={style}value={item.itemSpuTitle}onChange={(e) => reSetRightList({ itemSpuTitle: e.target.value }, index)}/>编辑器组件<Weditorheight={300}id={‘weditor’ + index}value={item.desc}onChange={(de

2020-08-09 19:59:29 555

原创 一个shell脚本,自动备份主线分支到rollback

现在每次发布的时候,都要求备份当前线上能运行的分支,很是麻烦,很多时候都会忘记。所以写了一个脚本无论在哪个分支,都可以切回rollback 分支,然后在这个分支拉取远程master 代码,备份。然后再切回来。如果权限足够的话,可以直接写在发布脚本中,在发布之前自动备份# backup.sh# 执行 git status 指令,并将无代码修改的这种状况进行筛选 。| grep "" 是匹配字符串并将这一行截取status=`git status | grep "working tree clean"

2020-06-12 17:10:30 194

原创 js闭包的实质

闭包这个在工作中用的实在是不多,不过最近遇到了一个需求用到了,为了加深记忆,防止以后出错在了解闭包之前,先看看自执行函数,自执行函数需要先定义一个函数,在js中定义一个方法有三种方式// 1.声明式函数add() //可以执行function add(num){ console.log(num+1);}add() //可以执行 // 2. 函数表达式add1() //不可以执行const add1 = function(num){ console.log(num+1);}

2020-06-05 14:16:46 171

原创 小程序分享获取到H5 的分享数据

H5 项目jssdk 引入,版本必须是1.4以上 ,截止最新版本是在需要分享shareModal的页面添加一下代码,此时的shareModal应该是需要分享的返回真实数据wx.ready(() => { wx.miniProgram.postMessage({ data: { title: '分享的标题22', desc: '分享的描述22', path: '/page/containers/sharemodal/sharemoda

2020-05-12 12:01:51 672

原创 阴差阳错下flutter的弥天大坑

开发flutter的时候碰到这个错误Unhandled Exception: Looking up a deactivated widget’s ancestor is unsafe.真的很隐晦。说一下场景起源吧。一个flutter的app,有一个登录页,一个聊天页。其中用到了provider。provider 集成了socket ,存储了一个records <int,List&g...

2020-04-29 17:50:05 303 1

原创 初试flutter

flutter 安装还是墙的原因,导致了安装过程无比艰辛1.如果命令行下载不了,直接下来安装包吧,解压下来,放在当前登录人的文件下,可点击前往,看一下一般的app 安装在哪个文件目录下了2.配置文件中有一个$HOME,怎么看$HOME 代表哪个文件路径呢, 控制台中 echo $HOME 即可查看3.接下来就是安装安卓sdk 等等,配置环境变量。最后都没问题了,flutter ap...

2020-03-28 13:40:47 94

原创 koa2 + react + node后台+热更新

技术栈react+webpack 支持前台编写。node+mysql做后台维护使用ts,包括了tsc,bable7,antd使用mysql,koa-route 做路由react+webpack配置由于使用bable7 ,所以直接使用.babelrc 解析react、ts、es6高级语法.babelrc相关配置如下,此文件位于项目根目录下。//.babelrc{ "prese...

2019-12-09 21:35:31 806

原创 二次封装axios

Tip 1:axios 基于promise 的http 库,应用于node.js 开发。同样的ajax 也是因为spa被淘汰。当然,axios最强大的一点,是防御XSRF攻击。什么是XSRFTip 2 js 的 class 和 static:学习过java,很系统的了解过java 的面向对象知识。js正在力求将自己的地位提高。举两个很简单的小例子:Tip2.1 先来一个普通的js对象 : j...

2019-04-04 10:24:35 235

原创 vuex和redux(重点是redux 的异步action)

这两个是当前最火框架的衍生物。但redux可以适用于多中场景,与各类框架都可以做到兼容。(可以做到兼容就允许你这么难了??!!)分类vuexredux存储storestore状态分类state(state 是显示声明的,组件中字段都是从store中衍生出来的。也就是说,如果你需要哪个字段,你需要在store的state声明出来)state可以是由 create...

2018-12-17 16:51:37 1371

原创 vuex 基础知识

store是一个容器包含着应用中的大部分状态,也就是说,定义了一个store对象,里面有一个state属性关键字。当store中的状态发生变化,相应的组件也会高效的更新。同样的 改变store的唯一途径就是显示的提交(commit)mutation// 如果在模块化构建系统中,请确保在开头调用了 Vue.use(Vuex)const store = new Vuex.Store(...

2018-09-14 16:11:04 287

原创 vue 与 dot 渲染表格 时间复杂度分析

&nbsp;&nbsp;&nbsp;&nbsp;doT.js,用过的都知道,渲染表格贼快。doT.js特点是快,小,无依赖其他插件。压缩版仅有4K大小。dot的基本语法:{{= }} for interpolation {{ }} for evaluation {{~ }} for array iteration {{? }} for conditionals {{! }} for ...

2018-09-10 18:49:58 1493 1

原创 js基本基础

js 基础:arr.push(list)– &gt;在数组末尾添加list值var item = arr.pop() —&gt;取出数组中的最后一项,删除数组的最后一项,并返回最后一项的值var item = arr.shift()–&gt;取出数组中的第一项,并返回arr.unshift(list) —&gt; 向数组的第一项推入list值arr.sort()—&gt;正序排序 ...

2018-09-05 18:20:07 177

原创 vue 进级篇 router 各种重点

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vue路由的配置是在 vue-cli的环境下进行的。 vue-router是一个插件包,可以用npm来进行安装的。 npm install vue-router --save我们一般会在src下新建router文件夹,在router中新建index.js文件。用以专门处理路由信息。(当然cli-已经帮我们做好了这一...

2018-08-29 11:51:58 1111

原创 computed && methods && watch in vue.js(绝对够详细,让你一目了然)

&nbsp;&nbsp;&nbsp;&nbsp;怎么说,说起vue,难免会遇到这三个难点 :computed,methods,watch。 总的来说computed 和 watch 之间及其的相似。都是监测vm.$data中数据的变动,然后执行对应的方法。 先看下面的代码–&gt;var vm = new Vue({ el: '#app', data: { msg...

2018-08-15 12:12:23 620

空空如也

空空如也

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

TA关注的人

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