自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

marko_zheng的博客

跳坑~填坑~跳坑~填坑~跳坑~填坑~跳坑~填坑

  • 博客(117)
  • 收藏
  • 关注

原创 柯里化与反柯里化

柯里化是指 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数。核心思想是把多参数传入的函数拆成单参数(或部分)函数,内部再返回调用下一个单参数(或部分)函数,依次处理剩余的参数。例如柯里化本质上是降低通用性,提高适用性。比如当我们需要校验手机号当需要校验多个手机号,传统写法如下乍一看也没什么毛病,但是通过柯里化,我们可以更加优雅的对函数进行封装。

2023-08-19 17:11:20 118

原创 React渐进式的图片加载组件

react渐进式图片加载插件

2022-07-05 15:01:09 440 1

原创 Vue + html2canvas截图时 不能使用跨域图片或图片不展示

Vue + html2canvas截图时 不能使用跨域图片的解决方案需要修改三个地方:1、修改源码 node_modules/html2canvas/dist/html2canvas.js5710行和5714行 case 2:this.context.logger.debug("Added image " + key.substring(0, 256));return [4 /*yield*/, new Promise(function (resolve, reject) { var img

2022-01-12 17:24:21 1352

原创 解决Unknown DraftEntity key null 插入图片,再输入中文会报错问题

解决Unknown DraftEntity key null 插入图片,再输入会报错问题最近在用react+draft.js编写富文本编辑器的时候遇到一个错误提示:Unknown DraftEntity key: null ,当时是写插入图片插入成功后在输入文字这一操作的时候出现的。对比官方Demo上有一个易错的点(注意一下 其中的insertAtomicBlock函数的第三个参数不是一个空字符串,而是一个含有空格的字符串!!!!!!)editorState: AtomicBlockUtils.ins

2021-12-11 10:52:09 845

原创 Js中? ?和? .

Js中??和?.和 ||空值合并操作符 ??只有当左侧为null或者undefined的时候才输出右侧的值逻辑或操作符 ||左侧的值为假值的时候就输出右侧的数假值:null undefined '' 0例子:console.log(null ?? 'ss') // 输出ssconsole.log(undefined ?? 'ss') // 输出ssconsole.log(0 ?? 'ss') // 输出0console.log(0 || 'ss') // 输出ss

2021-11-17 18:11:46 250

原创 双token校验机制

双token校验机制什么是tokentoken是客户端登陆的时候由服务端生成,之后每次请求都需要携带token进行请求。校验用户身份呢的作用为什么使用token减少敏感信息的传递可以校验用户身份的准确性以及有效期单token登录流程以及请求校验流程注意token是使用base64的形式进行加密的 是有一部分存储在客户端中,所以,token中不建议存放敏感信息双token校验机制场景设想:​ 用户正在app或者应用中操作 token突然过期,此时用户不得不返回登陆界面,重新进行一

2021-11-15 17:37:29 12513 3

原创 Js去格式粘贴和指定位置插入内容

Js去格式粘贴和指定位置插入内容描述:​ uniapp项目,使用webview新建了一个脱离于项目而存在的一个编辑器,并实现数据交互,事件共同的功能,此处仅记录去格式粘贴和指定位置插入内容页面中新建了div设置 contenteditable="true" 允许在指定位置插入复制 粘贴的内容 指定位置插入内容思路通过设定contenteditable=true开启div的编辑模式2个步骤:① 获取DIV中的光标位置② 改变光标位置去格式粘贴思路document绑定paste事件 然

2021-09-17 10:35:33 559 1

原创 点击去他区域 阻止input/textarea 失去焦点

点击去他区域 阻止input/textarea 失去焦点需求描述:点击搜索按钮 搜索框不失去焦点​ 或者 富文本编辑器(设置了 contenteditable=“true” 的编辑区)中点击上传图片的按钮 编辑器的光标不会消失以点击搜索按钮 搜索框不失去焦点需求为例子解决方案1 blur事件中 重新让input获取焦点<el-input @blur='blurFn' ref='inp'/>·····blurFn(){ this.$refs.inp.focus()}

2021-08-23 16:27:46 1984

原创 [email protected]下使用axios 结合typescript

vue3.0没有全局的vue对象 需要使用app.config.globalProperties 去扩展全局方法然后createApp(App).use(axios) 使用use的用法参数: {Object | Function} plugin ...options (可选)用法:安装 Vue.js 插件。如果插件是一个对象,它必须暴露一个 install 方法。如果它本身是一个函数,它将被视为安装方法。该安装方法将以应用实例作为第一个参数被调用。传给 use 的其他 options

2020-12-03 10:38:15 1948 4

原创 vue3.0+ts+element-plus项目初体验

vue3.0+ts+element-plus+axios项目初体验项目基于[email protected]下开发的,vue-cli4.5和之前的3.0以下的老版本不一样,安装命令也有所不同。首先得全局安装clinpm install -g @vue/cli //全局安装vue-cli最新版本第二步:实例化项目vue create mypro // 创建项目,mypro项目名,项目名中不允许出现大写字母要使用3.0 选择 >Default (Vue 3 Preview) ([Vue

2020-12-03 10:04:04 16808 5

原创 如何将GitBash整合进Webstorm

如何把Git Bash 整合进webstorm在选择cmd或者shell的时候需要注意 cmd无法运行ssh-copy-id命令 shell无法运行ssh或winrar.exe 使用中注意取舍第一步 、下载安装Git Bashhttps://gitforwindows.org/第二步、下载安装Webstorm这里不写了!教程多了去了第三步 、设置WebstormFile–>setting–>Tools–>Terminal–>Shell Pash第四步、重启Termi

2020-09-18 16:42:54 433

原创 antd走马灯组件自定义前进后退按钮

antd走马灯组件自定义前进后退按钮【ts + react】antd的Carousel没有提供前进后退按钮需要自己根据文档 实现此功能官方提供了next 和prev两个方法next() 切换到下一面板prev() 切换到上一面板代码如下:import React from "react";import "./Detail.less";import { Carousel,Image } from 'antd';import {LeftOutlined,RightOutlined} from

2020-09-04 10:50:24 3780 1

原创 win10环境下搭建IIS图片服务器

Win10环境下搭建IIS图片服务器背景交代:项目开发中在不依赖后端接口的前提下 前端基于mock获取数据,涉及到图片这块,需要完全还原线上场景,多以需要将图片放在服务器上。所以需要在本地利用window自带的IIS搭建IIS服务器1. 右键 此电脑 - 属性 - 控制面板主页,进入控制面板2. 程序 - 点击卸载程序3. 点击 启用或关闭windows功能4. 找到internet信息服务勾选和FTP服务器5. 控制面板 - 系统与安全 - 管理工具 - Internet Informatio

2020-09-02 14:55:01 2233

原创 React-cli使用Redux以及使用redux-persist处理刷新页面redux中数据丢失的问题

React-cli使用Redux以及使用redux-persist处理刷新页面redux中全局数据丢失的问题写在前面:项目基于 react + typescript + react-router + antd + redux + redux-persistReact-create-app中使用Redux首先目录结构如下| -- src | -- pages | -- Home | -- Home.tsx | -- Login | -- Login.tsx | -- st

2020-08-31 17:06:06 1179

原创 React中使用http-proxy-middleware跨域

React中使用http-proxy-middleware跨域基于create-react-app 和axios在create-react-app 2.0 之前,可以通过在package中添加proxy 来实现,如下package,.json"proxy": "http://0.0.2.89:300"2.0之后官方推荐使用http-proxy-middleware具体用法如下在sr...

2019-12-18 14:05:15 1204

原创 消除React中的warn Function declared in a loop contains unsafe references to variable(s) 'XXX'警告信息

消除React中的warn Function declared in a loop contains unsafe references to variable(s) 'mac_id’警告信息代码片段:import React from "react";export default class Main extends React.Component{ constructor(props...

2019-12-18 09:39:19 7632

原创 React的this.setState的异步问题

React的this.setState的异步问题先看一个问题描述import React from 'react';export default class Home extends React.Component{ constructor(props){ super(props); this.state={ country:"...

2019-12-16 17:00:15 1856

原创 解决安装Chrome翻译插件总是报CRX_HEADER_INVALID

解决安装Chrome翻译插件总是报CRX_HEADER_INVALID解决方案:将下载的*.crx的后缀名修改成 *.zip将文件解压,解压目录如下在chrome://extensions/ 中点击加载已解压的扩展程序找到 解压文件 的路径 就OK了...

2019-11-13 09:29:59 949

原创 CSS补充

CSS补充IOS body标签无法绑定点击事件解决方案:在body标签中包一层div,将事件绑定在div上转换成可点击元素cursor: pointer;阻止IOS input的点击蓝色暗框-webkit-tap-highlight-color: transparent; /*阻止ios 点击蓝框*/CSS变量/*不支持IE6-8,安卓4.4.4以下*/:root{ --c...

2019-11-13 09:21:39 179

原创 浅谈for、for in 、for of 、map、forEach、each

浅谈for、for in 、for of 、map、forEach、eachfor循环多次遍历代码块for (let i = 0; i < 5; i++) { if(i==1){ break //-continue } console.log(i)}语句 1 在循环开始之前设置了一个变量(let i = 0)。语句 2 定义运行循环的条件(...

2019-10-11 13:09:48 315

原创 Curve25519加密解密

Curve25519加密解密出于安全性的考虑,在原本明文传输的基础上需要对传输内容进行加密,首先,curve25519是一个不对称加密算法,需要前后端相配合,双方一起使用该加密算法,逻辑如下:前端使用generateKeyPair得到自己的公钥和私钥,用自己前端的公钥去交换后端的公钥后端使用generateKeyPair得到自己的公钥和私钥,将后端的公钥返回给前端,同时,用自己的私钥...

2019-09-16 11:30:29 6925 2

原创 JS判断手机是安卓还是IOS,以及监听软键盘弹出收起

JS判断手机是安卓还是IOS,以及监听软键盘弹出收起直接上代码,踩得坑都在代码里var u = navigator.userAgent; //获取到的是个字符串,包括很多信息,我只匹配我想要的信息var isAnd = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1; //判断是安卓手机var isIOS = !!u.m...

2019-09-02 17:09:10 995 2

原创 Vue指定不编译的文件夹和favicon.ico

Vue指定不编译的文件夹和favicon.ico在Vue3.0中引入public文件夹,不希望被编译的文件都可以放到这个文件夹下,但是在vue2.0中实现类似的功能,需要自己在webpack.prod.conf.js中做一些配置在这里简单的区分一下Vue2.0中的assets和static的区别assets:各组件中的依赖项,会被编译static:不会被编译,原样放到dist文件夹下言归...

2019-08-21 17:06:06 3311

原创 Vue组件懒加载和路由懒加载

Vue组件懒加载和Vue路由懒加载这里只记录了router层面上的懒加载方法,还有在*.vue中各种懒加载的方法,例如:需要的时候import组件,用完destory等等。Vue组件的懒加载vue-router配置路由 , 使用vue的异步组件技术 , 可以实现按需加载 .但是,这种情况下一个组件生成一个js文件router.jsimport Vue from 'vue'import...

2019-08-20 16:40:38 1212

原创 Vue项目跑在IE中报错:vuex requires a Promise polyfill in this browser.

Vue项目跑在IE中报错:vuex requires a Promise polyfill in this browser.因为使用了ES6 Promise,而IE浏览器不支持解决方案:引入babel-polyfill包npm install --save-dev babel-polyfill 在build/webpack.base.conf.js中module.exports = ...

2019-08-20 13:56:56 201

原创 chrome

解决安装Chrome翻译插件总是报CRX_HEADER_INVALID解决方案:将下载的*.crx的后缀名修改成 *.zip将文件解压,解压目录如下3. 在chrome://extensions/ 中点击加载已解压的扩展程序找到 解压文件 的路径 就OK了...

2019-08-20 09:56:45 135

原创 Vue项目每次打开的端口不同,指定端口失效

Vue项目每次打开的端口不同,指定端口失效在config/index.js中指定host: 'localhost', // can be overwritten by process.env.HOSTport: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be dete...

2019-08-19 16:51:10 2690 4

原创 Vue国际化之vue-i18n

Vue国际化之vue-i18n项目中需要一个一键切换用户语言的功能,在代码中加大量判断就太麻烦了,这个时候需要引入vue-i18n,vue国际化插件先npm 安装该插件npm install vue-i18n --save以插件的形式进行使用main.js// The Vue build version to load with the `import` command// (ru...

2019-08-19 14:05:39 405

原创 vue组件重载

Vue的组建重载项目开发中遇到需要重载组件的需求,根据我自己的理解有3种方法一、重新加载路由相当于按F5 整个页面重载location.reload();//js的方法//重新替换当前路由 replacethis.$router.replace({ path:"/index/main?name=name", name:"index"});//go(0)刷新当前页 go(-1...

2019-06-21 10:29:43 5305

原创 Vue2.0直接绑定键盘事件失效

Vue2.0直接绑定键盘事件失效很多刚开始使用v-on或者@的键盘事件时,经常会碰到明明添加了@keyup.按键名/值,却没有起作用,其实不是没有起作用,而是元素没有获取焦点导致的。可以尝试把 keyup 事件绑定在 document 上面。var lett = this; document.onkeydown = function (e) { var key =...

2019-05-31 17:27:46 1038

原创 Vue进阶之路之$set的理解

$set 的深入理解众所周知,Vue 双向数据绑定的原理是通过遍历data属性,利用Object.definePrototype将其转化成setter/getter,但是由于现代js的限制以及object.observe的限制,vue无法检测到对象属性的添加或删除。具体场景如下<template> <ul> <li v-for='(item,key) in ...

2019-05-21 16:11:38 8355 2

原创 wepy框架中分享(转发)小程序到群聊

在index.wpy的onload中插入//显示转发按钮及分享的群列表wepy.showShareMenu({ withShareTicket: true}) //在onShareAppMessage中设置分享的界面,**onShareAppMessage和onload同级** onShareAppMessage( options ){   var that = ...

2019-05-13 14:36:02 1277

原创 python中is 和 == 的区别

python中is 和 == 的区别is 和 == 在python中被用于两个对象之间的比较Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。== 是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等is 是比较两个对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同,有点类似js中的全等(...

2019-04-23 11:34:22 201

原创 django读取excel表格并引用自定义函数,然后插入mysql数据库库

django读取excel表格并引用自定义函数 , 然后插入mysql数据库库view.py# -*- coding: utf-8 -*- # 上一句话是要识别中文from __future__ import unicode_literalsfrom django.shortcuts import renderfrom cmdb import modelsfrom djang...

2019-04-15 17:12:43 2036 1

原创 Python入坑记(一)

Python入坑记(一)设置Pycharm 中生成的 *.py 的注释行file-----setting ----editor----file and code template----python script----Input和row_inputinput() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它...

2019-04-10 11:21:59 225

原创 python 手机号验证

python 手机号验证import re# 验证手机号是否正确phone_pat = re.compile('^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$')while True: # input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入 (任何类型的...

2019-04-08 11:47:12 3813

原创 小程序踩坑日志(四)-----Wepy

Wepy踩坑日志(一)Wepy是 腾讯参考了Vue 等框架对原生小程序进行再次封装的框架,更贴近于 MVVM 架构模式, 并支持ES6/7的一些新特性。对于经常接触vue的开发者,当然更愿意接触这个框架官方文档:https://tencent.github.io/wepy/document.html#/?id=快速入门指南全局安装wepy命令行工具npm install wepy-cli ...

2019-03-15 11:41:18 906

原创 Vue项目中,在iphone中软键盘和固定定位(fixed)相关问题的解决办法

Vue项目中,在iphone中软键盘和固定定位(fixed)相关问题的解决办法问题描述:在开发公众号项目的时候,遇到适配苹果7 的情况,苹果软键盘弹出之后会与position:fixed冲突出现问题,具体表现是,软键盘弹出时,底部的按钮会被顶到上面来,当软键盘消失后,滚动区域没有正确回正,导致一些内容点击事件无效。。。解决方案:在软键盘消失的时候,手动将滚动区域回到顶部,具体操作是:&...

2019-03-05 13:39:36 3165

原创 VUE中fetch结合支付宝API验证银行卡号

标题VUE中fetch结合支付宝API验证银行卡号工作中提出验证银行卡的需求,在项目基于vue的情况下,刚开始用正则,结果是不太准确换个方法就是要使用支付宝去验证用户输入的手机号Bank组件如下&lt;template&gt; &lt;div&gt; &lt;x-input title="银行卡号" placeholder="请输入银行卡号" type="text" @on-blur...

2019-02-28 11:03:50 2731

原创 SQL SERVER实现类似MySQL中的limit功能

SQL SERVER实现类似MySQL中的limit功能方法1 :top 和order by 实现,当数据表庞大的时候开小会很大--查询@m 到@n 条数据 declare @m int;declare @n int;select top @m * from (select top @n * from stu order by id desc) as a 方法2:利用top 和唯...

2019-02-14 16:09:13 15311 5

空空如也

空空如也

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

TA关注的人

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