自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

劲枫的博客

疯狂打码中~

  • 博客(177)
  • 资源 (14)
  • 收藏
  • 关注

原创 字符串和unicode编码互转

但是不希望name字符在代码中出现(避免灰产全局搜name,定位到代码所在位置,打断点调试等)。所以可以将name字符串转成unicode编码,如下。有的场景需要避免某些明文字符串出现在代码中,但是后端接口又定义好了字段名。比如,接口字段名为name:xxx。然后在需要使用的地方转回来。那么接口设置的时候就是。

2023-07-13 21:24:03 1170

原创 字体文件提取指定文字,压缩字体包体积

在项目中,经常遇到设计给到的ui稿中包含特殊字体,但是要引用对应的字体包又特别大,对页面性能造成困扰。我们只需要提取项目中需要用的文字、数字、符号等特殊字体,尽可能减少包体积。

2023-05-04 15:25:14 593 1

原创 React Hooks实现组件生命周期,监听组件挂载、卸载、更新事件

【代码】React Hooks实现组件生命周期,监听组件挂载、卸载、更新事件。

2023-03-09 15:17:56 1508

原创 自定义hooks实现useEffect中异步请求

/ 自定义hook。

2023-02-02 20:22:41 332

原创 使用ES新特性过滤JS对象中不需要的属性

Object.fromEntries([['name', '张三'], ['age', 18]]): 就是把键值对列表转换为对象,这个键值对就是Object.entries()生成的。个人理解:就是二维数组,里面的每一项都是由对象的key、value组成的数组。// [['name', '张三'], ['age', 18]]:返回一个数组,成员是参数对象自身所有可遍历属性的键值对数组。接下来介绍另一种解决方案,相对来说更加的便捷且稳定。// {name: '张三', age: 18}name: '张三',

2022-10-13 16:42:51 1009

原创 es6 sleep函数

es6 sleep函数

2022-07-12 15:21:55 511

原创 js运算精度丢失问题处理

/** * 将科学计数法的数字转为字符串 * 说明:运算精度丢失方法中处理数字的时候,如果出现科学计数法,就会导致结果出错 * 4.496794759834739e-9 ==> 0.000000004496794759834739 * 4.496794759834739e+9 ==> 4496794759.834739 * @param num */var toNonExponential = (num)=> { if(num == null) { .

2021-11-02 16:19:06 521

原创 ts版本react reducer

定义// action-type的类型export const UPDATE_EXPANDEDROW = 'UPDATE_EXPANDEDROW';// state的类型export type RowkeyType = PrimaryTableProps['expandedRowKeys'];// action的类型type ExpandAction = { type?: typeof UPDATE_EXPANDEDROW; payload?: RowkeyType };// redu.

2021-09-15 19:27:56 418

原创 react实现input搜索框延时发送请求

const onKeywordsChange = debounce((v: any) => { setSalePkgName(v);}, 800);//防抖函数function useDebounce(fn: any, delay: any, dep = []) { const { current }: any = useRef({ fn, timer: null }); useEffect(() => { current.fn = fn; }, [fn]); .

2021-06-02 21:27:43 955

原创 达夫设备(Duff‘s Device)

众所周知,过多的循环会带来一定的性能开销,增加总体运行时间。而减少迭代次数能够优化性能。”Duff’s Device” 作为广为人知的一种限制循环迭代次数的模式,还是有必要了解的。下面贴出了几个js版本的Duff's Device实现方式function duff(items) { var len = items.length, //缓存局部变量 iterations = Math.floor(len / 8), //商数,存放duff迭代次数 startAt = len .

2021-03-22 12:19:32 411

原创 小程序/H5固定单页面展示(长短屏自适应,不出现滚动条)的适配方案

场景描述:在开发小程序、H5中,可能存在需要在各种长短屏下都一个页面展示内容,不出现滚动条的场景。我们知道宽度的话按照设计稿750计算,大家基本没啥问题,H5就是750rem,小程序用750rpx,对吧,什么屏幕都能适配全屏。但是高度怎么办呢?方案介绍:此种方案中,必须有些可缩放元素存在:一张图片;其他部分如:底部按钮、底部文字、底部介绍等元素不能缩放。此时可以利用750/windowWidth计算一个比率。然后对于适配图片的处理方式是,1、计算设计稿中,不可缩放元素的高度;2.

2021-03-11 18:04:43 2075

原创 vue启动项目报sockjs-node错误

vue启动后报错。分析大致原因是公司内网络策略限制,在启动vue项目时访问了一个内网ip,访问不到解决办法:vue.config.js中devServer里面添加下面这端。其中ip通过cmd输入ipconfig查看

2020-12-10 11:19:23 1459

原创 node.js使用http.createServer搭建简单服务

方法说明:该方法属于http模块,使用前需要引入http模块(var http= require(“http”) )使用该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。语法:http.createServer([requestListener])接收参数:requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数: req 请求对象,想知道req有哪些属性,可以查看 ...

2020-10-18 14:45:40 14178

原创 js将13位时间戳转换成日期格式

function formatterTime(time, fmt='yyyy-MM-dd hh:mm:ss') { if(!time){ return ''; } if(typeof(time) == "object" || typeof(time) == "OBJECT") { var z = { M: time.getMonth() + 1, d: time.getDate(), h: time.getHours(), m: .

2020-09-14 11:24:27 715

原创 将UTC时区转成本地时区

function datetimecut(UTCDateString) { if (!UTCDateString) { return '-'; } function formatFunc(str) { return str > 9 ? str : '0' + str } var date2 = new Date(UTCDateString); var year = date2.getFullYear(); var mon = formatFunc(da.

2020-09-14 10:49:03 296

原创 HTML中使用VUE的模板页面

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>111</title> <script src="https://unpkg.com/vue/dist/vue.js"></script></head><body><div id="app"> &lt.

2020-09-08 10:04:37 1430 1

原创 vue和js文件相互监听DOM内容变化

前言:vue文件引入一个js文件,js中的按钮控制vue input弹框的出现,vue中的弹框输入的内容需要存入js文件。(ps:不要问为何不都用vue,设计如此),那么现在需要在vue中获取js控制弹框显隐的值,需要在js中获取vue中input后的内容。实现:先介绍一下MutationObserverMutationObserver 是一个可以监听DOM结构变化的接口。官方示例://选择一个需要观察的节点var targetNode = document.getElementBy..

2020-08-19 18:11:16 2025

原创 JS获取路由参数

function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]); return null; } let ADTAG = getQuery...

2020-08-06 16:49:26 702

原创 egg.js+vue前后端分离项目,后端如何使用set-Cookie为前端设置cookie

前后端分离,必然涉及跨域。直接设置不行的。网上看到很多设置方式比如 axios配置:withCredentials: true。然后后端采用cors ,添加Access-Control-Allow-Credentials:true。是不行的哈!本人项目栈,egg.js + vue +axios+nginx 实现后端为前端设置cookie。思路,消除跨域,只有从本质上解决跨域问题,后端才能为前端设置cookie,这个没价讲~操作如下:vue:8080 egg:7001nginx配置如下:.

2020-07-22 23:00:11 2139

原创 Nginx配置同一个域名访问不同端口的项目(前后端分离项目)

前端是8080,访问地址不变,xx.xx.com即可后端访问为 xx.xx.com/api 开头。以egg.js为列,需要配置前缀/api开头才可以,否则会报404 not found

2020-07-22 22:35:14 7858

原创 解决谷歌浏览器输入http自动跳转https的问题

在chrome浏览器地址输入:chrome://net-internals/#hsts在红框处输入域名,如:www.baidu.com,不要加前缀。然后重启浏览器,清楚缓存即可

2020-07-16 10:48:59 4671

原创 egg.js+nginx+elementui+vue上传文件报net::ERR_CONNECTION_ABORTED错误

问题:1、上传1m一下的图片时一切正常;2、上传超过1m的文件,偶尔报413 (Request Entity Too Large)。偶尔报net::ERR_CONNECTION_ABORTED错误问题分析对于1m这个限制,大概率确定了是nginx的问题。但是还是要检查egg.js中文件大小是否有限制,检查fileSize字段;然后去ngixn添加client_max_body_size 20m;再重启nginxps:a. 在http{ }中设置:client_max_bo

2020-06-16 18:55:18 3031

原创 js、vue事件捕获、事件冒泡说明与使用

概念理解1、事件捕获(event capturing)事件从顶层(window对象)开始触发到被点击的精确元素事件触发的过程2、事件冒泡事件从点击元素事件触发到顶层对象事件触发的顺序触发过程3、流程图说明简单的来说,捕获:一个自顶层元素向最里层元素(HTML代码为包裹的形式的)执行事件的方式;冒泡:从最里层元素向最外层元素触发事件。代码说明1、普通方式,默认冒泡,先执行里层,再执行外层2、阻止冒泡e.stopPropagation(),事件不再向上传递..

2020-05-27 21:00:48 1480

原创 js如何用变量值作为对象名

let colum = "abc"let arr = []arr.push({[colum]:{name:"xxx",id:123}})使用[ ] 中括号就可以实现。

2020-04-27 16:01:18 4045 2

原创 phpstorm在原有的jade项目上出现Invalid indentation, you can use tabs or spaces but not both

由于接受他人项目需要直接在原来的模板上新建东西 。但是由于编辑器不同的原因,原有项目使用的tab,我这边之前tab是按照缩进四格做的。导致出错。首先查看下自己的编辑器是否也是如此,如下可以看到,我在“测试”那里使用的tab但是出现四格空格修复,如下全部用tab缩进...

2020-04-15 10:45:49 323

原创 通过contentWindow操作iframe的简单demo

页面A;<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>AAAA</title></head><body><a href="javascript:testclick();"&g...

2020-03-17 15:21:23 471 1

原创 小程序中rpx和px相互转换方式

当前有个项目页面中弹框是用固定定位做的,需要利用top值让其居中。那么就需要计算top具体是多少;当然计算方式是比较简单的:top:(窗口高度-弹框高度)/ 2那么弹框高度使用rpx设置的,然而通过wx.getSystemInfoSync.windowHeight获取的窗口高度是px值。这就需要先将窗口高度转换成rpx值才行。那么需要下计算转换比率。其实在小程序中还是比较简...

2020-03-13 14:24:51 4431

原创 mpvue中页面生命周期及加载顺序

created () { console.log('created----------------------000小程序加载时,所有页面里面的函数执行') }, onLoad () { // 页面创建时执行 console.log('onLoad----------------------11页面创建时执行') },...

2020-02-28 20:49:53 943

原创 async/await用法

demo1 this.fun1() async fun1() { try { let time1 = await this.time1() console.log(time1) } catch (err) { console.log(err) } }, time1() { return new Promis...

2020-02-08 19:57:10 195

原创 拿来即用的网页倒计时组件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>倒计时组件by TCF_JingFeng</title></head><style> .listtime { wid...

2020-01-11 14:24:31 415 1

原创 零基础抓包教程--5分钟教你利用Whistle进行移动端抓包

一、环境说明1、电脑window,mac2、手机ios或andorid3、chrome浏览器二、开始搭建1、电脑、手机连到同一个局域网环境2、电脑安装whistlewindows10 通过管理员权限打开命令行 mac 打开terminal3、安装npm和node环境(这里不会的自行google或百度)4、安装whistlenpm install -g wh...

2019-12-20 15:14:48 2145

原创 H5横竖屏适配代码,强制横屏

1、强制横屏代码,检测用户屏幕方向,竖屏时提示用户将屏幕翻转<style> @media all and (orientation: portrait) { html, body { position: relative; overflow: hidden; width: 100%;...

2019-11-14 19:28:12 6053 1

原创 CSS3简单实现伪3D,分层级图片跟随鼠标移动而移动

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><style> .box1 { width: 100px; h...

2019-10-15 22:00:44 626

原创 微信小程序使用img标签代替background:url()的解决方案

<template> <div class="bargin-stage"> <!--背景图--> <img class="bg-img" src="../../../static/images/bg-img.jpg" :style="minHeight" alt=""> <img cla...

2019-09-19 22:42:23 2700

转载 koa跨域问题及koa2-cors中间件的使用

浅谈koa跨域问题及koa2-cors中间件什么是跨域 跨域请求资源的方法 koa中如何设置跨域 koa2-cors应答跨域请求实现什么是跨域由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。存在跨域的情况: 网络协议不同,如http协议访问https协议。 端口不同,如80端口访问8080端口。 域名不同,如qianduan...

2019-09-04 20:42:37 1452

原创 absolute 元素完全居中的两种方法

方法一:(不能微调)position:absolute;left:0; right:0; top:0;bottom:0;margin:auto;方法二:(可微调)position:absolute;top:50%; left:50%;margin-top:-10px;(元素高度的一半)margin-left:-10px;(元素宽度的一半)...

2019-08-09 13:24:18 3865

原创 ES5中的类和静态方法 继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)

<!doctype html><html><head> <meta charset="utf-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale...

2019-07-27 18:20:31 342

原创 PHPStorm配置typescript自动编译

1、自行去官网安装node.js;2、npm工具安装typescriptnpm install -g typescript查看typescript版本tsc --version3、打开phpstorm,新建一个目录tscTest,进入该目录,执行tsc --init生成一个tsconfig.json文件4、配置js文件输出路径5、打开监听Fi...

2019-07-27 14:03:39 1389

原创 git stash的详细讲解

应用举例通过几个实际的示例来了解一下git stash的强大.开发到一半,同步远端代码当你的开发进行到一半,但是代码还不想进行提交 ,然后需要同步去关联远端代码时.如果你本地的代码和远端代码没有冲突时,可以直接通过git pull解决.但是如果可能发生冲突怎么办.直接git pull会拒绝覆盖当前的修改.遇到这种情况,需要先保存本地的代码,进行git pull,然后再pop出本地代...

2019-06-05 15:08:55 5337 1

原创 git强制覆盖本地代码

git强制覆盖: git fetch --allgit reset --hard origin/mastergit pullgit强制覆盖本地命令(单条执行):git fetch --all &&git reset --hard origin/master &&git pull...

2019-06-05 13:02:00 12351

node-sass和sass-loader下载.zip

直接下载node-sass和sass-loader下载,然后拷贝到node-modules下即可,再次npm install就不会报错了

2020-02-18

vue中vuex模板

一个简单的自用的vuex模板,定义好了层级目录关系store(actions,getters,mutation-types,mutations,state,index)

2019-05-02

nvm_setup1.1.7

2019/04/29 最近因工作需要学习node.js技术,使用nvm能更好的管理node版本,此版本为1.1.7版本

2019-04-29

nvm安装node

已经配置好的nvm文件!

2018-09-20

node版本控制nvm

node版本控制工具nvm的安装包!

2018-09-20

php操作kafka的扩展包php-rdkafka

php操作kafka的扩展包,php直接操作kafka所必须安装的扩展

2018-08-27

php操作kafka的扩展包librdkafka

php操作kafka的扩展包librdkafka,在使用kafka的时候必须先安装librdkafka

2018-08-27

移动端适配+响应式开发参考代码

设计稿的宽度:designWidth 允许自适应的最大宽度(超过这个值屏幕元素不在自适应增大):maxWidth 页面顶部加上:&lt;meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" &gt; 这段js的传入两个参数:一个为设计稿实际宽度,一个为显示的最大宽度(允许的屏幕最大宽度,用来限制屏幕过大之后元素还会自适应增大的) 例如设计稿为750,最大宽度为600,则为(750,600),屏幕大于600之后就不会自适应变大了,也相当于在用@media属性时min-width只设置到了600,没有后面的屏幕尺寸,就不会再变化了 公式:1rem = 浏览器屏幕宽(width) * 100 / 设计稿宽(designWidth) (750,750)含义1rem = clientWidth * 100 / 750 (750,2160)含义1rem = clientWidth * 100 / 750 clientWidth是动态获取的 后

2018-06-26

菜单显隐切换终极版

包含一个基本的菜单显隐切换和一个我具体项目中用到的完整样式版本

2018-05-21

liveReload for mac

LiveReload for mac是一款跨平台的软件,在 OS X、Windows 以及 Linux 下都能使用。运行LiveReload for mac后载入网站源代码所在的文件夹,这样它就会开始识别。

2018-05-21

tornado项目模板

一个用tornado写项目,包含基本的目录结构,对数据库的基本操作,对模板的基本操作,可仿造这个项目搭建自己的项目

2018-04-28

js需要的通过省选学校数据

js通过省选择学校需要的全部数据,数据格式为json,提供我csdn里面“Jquery+Bootstrap通过省选择学校”一文中的数据

2018-04-24

js实现三级联动选择大学专业

三级联动实现选择全国专业效果,数据来源于scrapy爬取的某高考网站,内含数据文件。采用了JavaScript的重载功能

2018-04-24

全国各高校学科、专业的json数据

通过网络爬虫爬取的某高考网站里面的学科专业的数据,有一级学科,二级学科,三级具体专业,我已经处理成json格式,方便直接做三级联动效果,我也已经用这个数据实现了三级联动

2018-04-24

空空如也

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

TA关注的人

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