自定义博客皮肤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)
  • 收藏
  • 关注

原创 git 提交成了LFS格式,如何恢复

平常习惯使用sourceTree提交代码,某次打开时弹出了一个【是否要使用LFS提交】的确认弹窗,当时不知道LFS是什么就点了确认,后续提交时代码全变成了这个样子。因为是初始化的项目首次提交,将近四百个文件全被格式化成了这个样子,但是不要慌,看我们一步步给它恢复。如果是像我一样使用sourceTree的,还需要找到 仓库 - Git LFS - 取消跟踪文件。选中文件进行移除,不移除的话后续再提交代码还是会默认上传成LFS格式。

2023-11-20 10:58:42 431

原创 TS使用hasOwnProperty方法报错

Do not access Object.prototype method 'hasOwnProperty' from target object.不能直接访问Object原型上的方法

2022-09-14 10:57:12 927 1

原创 深拷贝的几种实现方式

实现深拷贝的几种方式

2022-02-18 20:59:58 409

原创 isEqual的模拟实现

手写一个isEqual函数,实现深比较

2022-02-18 16:23:13 372

原创 bind的模拟实现

手写一个bind函数

2022-02-02 14:31:07 549

原创 判断数据类型的三种方式

用typeof、instanceof、Object.prototype.toString判断数据类型

2022-02-02 13:48:51 793

原创 使用swipe组件,切换图片时出现闪烁

解决方案:父元素上增加样式style="transform:translate3d(0,0,0);overflow:hidden;"子元素增加样式style="max-height:100%;max-width:100%;transform:translate3d(0,0,0)"<van-swipe :show-indicators="false" :loop="false" ref="swipeImg" :stop-propagation="false" style="t...

2021-07-12 16:35:26 960 4

原创 使用WebpackAliyunOss提高首页加载速度

框架:Vue + webpack4这段时间一直在优化web系统的首页加载速度,如果你也遇到了”不管怎么优化、文件体积变得再小,首页加载仍然很慢“,那么请按照下面的步骤检查一下步骤一最开始首页要白屏15s+,后面通过webpack的分包+压缩把速度优化到了8s。分包:optimization(webpack3用webpack.optimize.CommonsChunkPlugin)压缩:compression-webpack-plugin这两个大部分人都能实现,而且网上也有很多文章.

2021-04-29 16:54:33 737 1

原创 删除mini-css-extract-plugin警告

自从webpack升级到4,使用mini-css-extract-plugin插件后每次build都会打印出一大片css警告,非常影响我看日志,于是找了个方法在本地构建时隐藏了这些警告// webpack.prod.jsmodule.exports = env => ({ ... stats: { // 去掉mini-css-extract-plugin报的warning children: false, warningsFilter: (warning) =&

2021-04-29 11:02:46 996

原创 微信小程序使用scroll-view时,弹出的键盘会和底部input框重叠问题

<scroll-view style="height: calc(100vh - 340rpx);margin-bottom: 20rpx;background: #f8f8f8" scroll-y="true">... <u-keyboard ref="uKeyboard" mode="number" v-model="show" :dot-enabled="false" @change="valChange" @backspace="backspace"&...

2021-04-16 15:36:03 802

原创 [Vue warn]: Error in render: “TypeError: predicate is not a function“

进行webpack打包优化时,为了缩小lodash的打包体积使用了lodash-webpack-plugin插件,但是运行项目后页面报错[Vue warn]: Error in render: "TypeError: predicate is not a function"解决方法:使用插件时加入shorthands配置newLodashModuleReplacementPlugin({'shorthands':true})记录一下缩小lodash打包体积的方法1. 安装...

2021-04-14 16:26:08 978

原创 GET请求:axios.interceptors拦截器中获取不到headers

基础库:vue+axios使用axios封装接口请求,在所有请求的headers中加入signature字段给后端做合法校验。先上代码// 创建 axios 实例const itAxios = axios.create({ baseURL: apiBaseUrl, timeout: 9000, // 请求超时时间 validateStatus: status => { return status < 600 }, ...configs})/**.

2021-03-26 17:10:53 1564

原创 数组对象中的某个数据更新了,但是视图却没有更新

需求:点击刷新按钮后显示倒计时5s,倒计时结束后才能继续刷新。项目框架:vue + uView预期效果: 点击“刷新” ——> // html代码<view v-for="item in list" :key="item.id"> ... <view class="refresh"> <u-button type="primary" plain size="mini" v-if="ite...

2021-03-12 15:41:52 594

原创 a-select组件使用dropdownRender 时如果有a-input组件,点击a-input时select组件会收起,导致input无法输入

实现如图效果期望:点击输入框可以正常输入 下拉框不会收起,选择option时下拉框可以正常收起。思路:通过open控制select的收放。<template> <div @mousedown="e => { e.preventDefault() this.selectOpen = true }"> <a-select default-value="lucy" style="width: 300px" :open="se

2021-03-10 10:19:03 3324 2

原创 闭包的概念以及特性

慢更~1.函数中判定闭包的标准:在执行时是否在内部定义的函数中访问了上层作用域的变量。

2020-09-21 16:24:01 170

原创 关于HTTP缓存

http缓存的流程图如下:http缓存主要分为强制缓存和对比缓存(又称协商缓存) 强制缓存:相关头部字段Cache-Control、Exipres(HTTP 1.0),浏览器直接读取本地缓存,不会再和服务器进行交互,状态码200。 对比缓存:相关头部字段Last-Modified / If-Modified-Since、Etag / If-None-Match,(Etag优先级高于Last-Modified)每次请求需要让服务器判断资源是否更新过,从而决定是否使用缓存,如果是则返回304,否..

2020-09-03 16:13:53 155

原创 根据指定格式解构数组

根据formater(String类型)解构数组,返回对应字符的值,无对应值返回undefinedconst parse = (str) => JSON.parse(str.replace(/([\d\w]{1,})/g, (subStr) => `"${subStr}"`));function destructuringArray(array, formater) { function fn(value, key, result) { if (Array.isArr.

2020-08-31 17:16:56 167

原创 2020Vue常见面试题

以下是我自己在面试中遇到的一些问题,先列题目,答案慢慢更新~1.Vue和react的区别。2.介绍一下各个钩子函数。3.介绍一下Vue的模式(MVVM框架)。4.父子组件间怎么传值。watch的deepTree模式。5.v-show和v-if的区别。答:v-show是挂载了DOM树,通过改变display的值来控制是否展示。而v-if为false时则不会挂载到DOM上。如果是频繁操作推荐使用v-show,很少会改变状态的情况推荐v-if。6.介绍下vuex.7.介绍下消息

2020-08-27 17:50:01 333

原创 2020前端面试题

面试遇到js相关的问题,简单记录一下

2020-08-27 17:41:04 226

原创 2020-react常见面试题

以下是我个人遇到的面试题,先列题目,答案慢慢更新~1.react生命周期。2.hooks和class的区别,为什么要用hooks?(hooks解决了哪些问题)3.react-router的实现原理?有哪几种类型,分别有什么区别?4.hashrouter是怎么实现路由跳转的?如果我直接改变URL跳转到另一个页面,描述一下过程。5.解决地狱回调的方法。6.介绍下promise。7.promiseAll其中一个方法失败后,整个结果是失败还是成功?答:失败8.介绍一下redux。

2020-08-27 17:24:55 3266

原创 数组去重,数组中包含多层嵌套对象的情况

function unique(arr) { let obj = {} let isNull, isUndefined for (let i = 0; i < arr.length; i++) { if (arr[i] === null && !isNull) { isNull = 1 obj['null'] = 1 } if (arr[i] === undefined && !isUndefined) {.

2020-08-20 16:50:08 1162

原创 微信小程序倒计时——解决IOS系统中new Date().getTime()问题

项目中用setInterval做了一个倒计时的功能,但是发现IOS系统中setInterval计时器不能正常使用,在安卓系统均正常,在微信开发者工具以及真机调试时也是正常显示,排查后发现是Date()的问题,IOS解析时间时无法识别‘-’。解决方案:把 -都替换成 /const Time = '2020-04-14 23:59'原代码new Date(Time).ge...

2020-04-15 11:18:45 2073 1

原创 将嵌套递归成一维数组,数组扁平化

// 原数组var a = [1, 2, [3, 4, [5, [6]]]]// 期望得到 => [1, 2, 3, 4, 5, 6]方法一:reduce()a.reduce((total, currentValue) => Array.isArray(currentValue) : total.concat(currentValue) ...

2020-03-12 18:33:32 883

原创 浮点数乘除出现超长小数

今天遇到一个问题,当我想把小数以百分比形式展示时,发现某一些小数乘以100后会变成一个超长小数通过各种尝试用这个方法可以解决:Math.round((t * 10000) / 100)...

2020-03-04 16:29:05 1138

原创 微信小程序-设置overflow: auto鼠标可以滑动但是触摸不可滑动

我用的是uni-app的框架改用scroll-view组件注意!一定要设置高度,否则scroll无效<scroll-view class="scroll" scroll-y="true">...</scroll-view>.scroll{ max-height: 600upx;}...

2020-01-09 16:44:18 3773 1

原创 antd:upload图片上传时发现背景透明的图片上传后背景会变黑

排查出来是因为只有png格式支持透明,但是上传png格式图片时都被处理成jpg格式了,下面是问题代码:转二进制的时候强制设为了jpg格式找到了问题,但是如果直接用canvas.toDataURL().split(',')的话会默认使用png格式,上传jpg也会变成png,我们的目标是使用图片原来的格式beforeUpload = file => { ... ...

2020-01-09 16:38:43 1921

原创 js:一些常见的input正则表达式校验

1. 不超过20字符/^.{0,20}$/2.手机号码/^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/3.邮箱/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/4.身份证号...

2019-11-22 15:45:46 1474

原创 JSON.stringify()转义后‘{}’未被转义

使用 encodeURIComponent(JSON.stringify(obj))

2019-10-22 14:59:29 1242

原创 一个FormItem中校验多个input

实现以下效果:将三个input封装成一个组件InputComp.js:import React, { Component } from 'react'import { Input } from 'antd'export default class InputComp extends Component { static getDerivedStateFromProps(n...

2019-10-10 16:14:41 5128

原创 react+antd:全局设置form表单不可编辑

在做编辑页面的时候遇到一个需求是“在指定状态下内容不可编辑”方案一:给每个<Input>、<Select>...添加disable属性这种方案在form表单内容比较多的情况下可能不是很方便,所以辜老师帮我想了方案二方案二:封装个组件全局设置disable,如下封装一个高阶组件( ./Input )import React, { useContext, ...

2019-08-29 20:07:56 16496 4

原创 bootstrap:改变modal中复选框,未保存情况下复选框会保留更改

if (checkbox_1 === true){ $("input[name=box_1]").prop("checked", true)}if (checkbox_2 === true){ $("input[name=box_2]").prop("checked", true)}改为:$("input[name=box_1]").prop("checked", c...

2019-06-27 14:45:31 320

原创 echarts在多tab切换时,warning:Can't get dom width or height,warning:There is a chart instance already init

warning:Can't get dom width or height在init之前先重新设置dom的宽高widget = { //tab切换时重新设置dom的宽高 resizeMainContainer : function () { //获取父组件的宽度 let width = $('#tab-content').width(); ...

2019-06-13 16:31:57 459

原创 删除node_modules文件

rm -rf node_modules在VS Code中直接输这个命令报错“rm不是内部命令”,换个方法即可:cnpm install rimraf -grimraf ./node_modules第一次在使用rimraf命令删除node_modules时报错了,因为目录有误,少了./,加上之后正常删除。ps:如果装了git和node的,可以直接在有node_module...

2019-05-22 15:32:39 3000

原创 umi:with-dva官方demo,配置式路由首页404

在.umirc.js中配置路由,第一次这样写:发现首页404,其他页面均正常显示,path:‘/’的路由配置有误,修改为:

2019-05-17 10:34:27 3912 2

原创 在FormItem中使用select的initialValue设置初始值

<FormItem label="用户" {...formLayout}>{ getFieldDecorator('useredit', { initialValue: editUserId })( <Select mode="multiple" onChange={this.handle...

2019-04-26 16:05:40 9108

原创 TypeError: Cannot read property 'scrollTo' of null

在使用react中的’IScroll‘方法时可能会出现“TypeError: Cannot read property 'scrollTo' of null”报错,原因是DOM树还未建立完成或者被卸载了,这时只需要在使用’IScroll‘方法时加一个判断:this.myScroll && this.myScroll.scrollTo(0, 50, 1000, IScroll....

2019-04-16 10:53:59 3414 1

原创 react+antd:Form表单校验不提示错误信息

使用antd做表单的小伙伴一定经常会用到getFieldDecorator<FormItem label="用户名"> { getFieldDecorator('userName', { rules: [{ required: true, message: '用户名不能为空...

2019-03-29 14:48:10 19050

原创 react+antd:Warning: Each record in table should have a unique `key` prop,or set `rowKey` to an uniqu

Warning: Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.Warning: [antd: Table] Each record in dataSource of table should have a unique `key` prop, or s...

2019-03-28 16:22:59 17629 7

原创 react+antd:在Form中使用Dropdown

在antd的官方实例中,一个简单的Dropdown是这样的render(){ const menu = ( <Menu> <Menu.Item> <a target="_blank" href="http://www.alipay.com/">1st menu item</a> ...

2019-03-27 10:06:15 3657

原创 react+antd:"key"prop警告

Warning: Each child in a list should have a unique "key" prop.根据warning定位找到425行的button,给它添加key值Warning: Each child in an array or iterator should have a unique "key" prop.主要出现在react的map回调时,添...

2019-03-25 19:48:18 2820

空空如也

空空如也

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

TA关注的人

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