- 博客(32)
- 收藏
- 关注
原创 使用redux的痛点和解决方案
痛点与优化方案:样板代码多:传统Redux需手动编写action、reducer等,RTK的createSlice可减少70%代码量。异步处理复杂:依赖中间件(如thunk/saga),RTK Query内置异步管理,消除冗余代码。不可变更新繁琐:嵌套对象需深拷贝,RTK集成Immer支持直接修改草稿状态。TypeScript支持弱:RTK自动推导类型,保障类型安全。
2025-08-02 15:23:42
1025
原创 输入npm install后发生了什么
本文介绍了npm安装依赖的完整流程,分为五个阶段:1)准备阶段检查配置和锁定文件;2)依赖解析阶段构建并扁平化依赖树;3)安装阶段优先使用缓存,未命中则远程下载;4)收尾阶段更新锁定文件和运行脚本;5)常见问题处理。重点包括:配置优先级(项目>用户>全局)、缓存机制、锁定文件的重要性、避免使用sudo执行npm等安全注意事项。文章还提供了典型问题的解决方案,如缓存清理、文件占用处理和安全漏洞修复建议。
2025-07-13 21:15:34
450
原创 webpack中按照路由做代码分割到底是怎么回事
本文介绍了前端路由分割的实现方案与优化技巧。React通过React.lazy+Suspense实现组件异步加载,Vue则使用动态导入语法。Webpack会将动态import自动识别为代码分割点,生成独立chunk文件。路由分割可显著降低首屏体积,提升加载速度。进阶优化包括预加载策略、分组打包和错误边界处理。需避免过度分割、忽略加载状态和预加载滥用等问题。不同框架有各自的最佳实践方案,如ReactRouter搭配@loadable/component,Vue使用vite-plugin-pages等
2025-07-13 17:10:20
396
原创 手撕Promise方法(全/含详细注释和测试用例),遵循Promise/A+规范,包含allSettled/race/any等多个方法
本文介绍了一个自定义Promise实现类MyPromise,遵循Promise/A+规范。核心特性包括:支持链式调用、异步执行回调、错误处理和穿透、值穿透以及静态方法支持。功能包括:1) then/catch方法实现链式调用;2) finally方法确保回调执行;3) 静态方法(resolve/reject/all/race/allSettled/any/try);4) 异步处理和错误穿透机制,该实现完整覆盖了原生Promise的核心功能,可以作为Promise原理的学习参考。
2025-07-13 14:32:50
264
原创 webpack中SplitChunks的分割策略
Webpack代码分割优化策略分析本文介绍了基于科学分组的Webpack代码分割策略,核心要点包括:模块分组策略:将React等低频变更库独立打包,UI组件库合并处理,业务公共模块单独拆分配置详解:设置了20KB最小拆分阈值、50KB强制拆分阈值,限制最大请求数为30个创新缓存方案:采用按npm包名精细拆分vendor,取代传统单一打包方式优先级设计:vendor组(10)优先于common组(-20)匹配,确保关键依赖优先处理该策略通过平衡缓存利用率和请求数量,实现了更优化的打包效果,特别
2025-07-13 00:22:27
1265
原创 element表单验证关于是否必填,格式验证以及大小验证
rules: { name:[{ required: true, message: '请输入用户名', trigger: 'blur' },{ min: 2, max: 6, message: '长度在 2 到 6 个字符' },{ patter...
2018-10-24 16:49:54
11184
原创 css中的Sticky footer 布局
什么叫Sticky footer 布局呢?我们所见到的大部分网站页面,都会把一个页面分为头部区块、内容区块和页脚区块,当头部区块和内容区块内容较少时,页脚能固定在屏幕的底部,而非随着文档流排布。当页面内容较多时,页脚能随着文档流自动撑开,显示在页面的最底部,这就是Sticky footer布局。一般网上会推荐几种方法,但经过亲身实践,我发现还是负margin布局方式比较实用,兼容性最好...
2018-10-23 10:17:04
425
原创 svn提示out of date的解决方法
步骤1. team–>update 步骤2. team–>Show Tree Conflict–>标记"冲突已解决" 步骤3. team–>commitmyeclipse如下操作
2018-10-22 18:01:50
19147
4
原创 关于Element上传图片组件el-upload的使用以及校验
这种写法在多数情况下均可使用<el-upload class="avatar-uploader" action="/api/upload/ueditorUpload" :on-success="uploadSuccess" :on-error="uploadError" :show-file-list="false" :before-upload="beforeAvat
2018-10-15 11:40:47
18484
原创 前端关于vue普通引用情况下如何与UEditor结合以及关于UEditor的文字居中的bug解决
首先去官网下载压缩文件解压:https://ueditor.baidu.com/website/download.html然后在你使用插件的文件中script引入<!-- 配置文件 --> <script type="text/javascript" src="/ueditor/ueditor.config.js"></script> <...
2018-10-15 11:32:13
645
原创 js校验6-16位字母或数字,当不能是纯数字或纯字母时如何解决
校验密码的时候如何校验6-16位字母或数字呢,正则表达式就派上用场了function isNumberOr_Letter(s){ var regu = "^[0-9a-zA-Z]{6,16}$" var re = new RegExp(regu) if (re.test(s)) { return true; }else{ return false; }}但是测试...
2018-10-09 15:56:30
6072
原创 使用clipboard.js实现js复制黏贴的功能
最近在做项目的时候需要实现复制黏贴的功能,但是js自己提供的各种方法存在兼容性问题,最后决定使用插件来实现,找了很多插件,发现了了一款比较好用的,分享给大家官网地址:https://clipboardjs.com/js包下载地址:jsDelivr< script src = “ https://cdn.jsdelivr.net/npm/clipboard@2/dist/cl...
2018-09-29 16:54:48
5580
原创 模仿boss直聘网站省市地区三级联动效果
利用纯js写的 模仿boss直聘网站省市地区三级联动效果,有兴趣的可以看看,传送门:模仿boss直聘网站省市地区三级联动效果效果图:
2018-09-22 20:56:26
1467
原创 大转盘抽奖的网页版和小程序版
今天整理了下以前写的小demo,把大转盘抽奖的代码,整合下,列了网页版和小程序两个版本,这个转盘抽奖的核心是H5的canvas和Css3的translate属性,非常简单,写了网页版和小程序版供大家参考,主要核心代码就是利用canvas画图,完整代码见https://github.com/Elve520/lottery,下载可用希望给大家带来帮助//转盘内部绘制lottery.prot...
2018-09-02 14:59:11
13027
1
原创 ueditor 编辑图片居中时报错的解决方法
最近在做项目时使用到了UEditor,发现设置图片居中时竟然报错了,然后去官网看演示,发现官网也报错了,错误是Cannot read property 'removeAttribute' of null at UE.Editor.execCommand经过我仔细盘查,发现是因为白名单里面过滤掉了各种标签的属性,导致样式跟id之类的被清空了所以解决办法是:将p标签的白名单加上id跟st...
2018-08-03 17:58:43
1246
原创 在vue中如何使用公共过滤器filter
平时我们在vue中使用过滤器时,在模板中定义的过滤器不能在其他模板中使用,所以要在每个模板中定义自己的filter,这样就会出现很多重复的代码,那有没有办法定义一个公用的filter,减少代码的重复呢?下面就给大家展示下使用最多且有效的方法吧!首先在公用js中定义一个通用的filter.js,如下图所示,记得一定要把代码整个export出来const vFilter={ numFilter:f...
2018-06-26 10:59:26
4403
1
原创 vue项目如何实现剪切板功能--vue-clipboard2
1、安装vue-clipboard2插件:npm install --save vue-clipboard22、main.js添加import VueClipboard from 'vue-clipboard2'Vue.use(VueClipboard)3、copy组件:message绑定需要复制的文本/onCopy复制成功回调/onError复制失败回调,在需要复制的地方调用v-clipboa...
2018-05-25 17:27:55
5914
转载 vue做移动端适配最佳解决方案,亲测有效
最近在做商城的项目,发现有赞的ui非常适合,但有一个问题是有赞的ui用的单位是px,做不了移动端的适配,官网的提供的vw适配方案发现不可行,最后还是决定rem来做适配,上网搜了一下,发现了一套可用方案,亲测有效哦它的原理是借助px2rem 插件方便的将px单位转为了rem具体步骤:安装npm install px2rem-loader lib-flexible --save 在main.js中引...
2018-05-25 17:20:34
41871
4
原创 在Vue-cli中引入jquery
产品说字体的颜色要动态取,但是css文件不存在变量一说,聪明的我立马想到了利用js给元素设置颜色,这个时候是要抓取元素的,说道抓取元素还是jquery最方便了,那么怎么在Vue-cli中引入jquery呢 需要在webpack中全局引入jquery , 打开package.json文件,在里面加入这行代码,jquery后面的是版本,根据你自己需求更改dependencies:{...
2018-05-25 17:05:58
1619
原创 关于css布局(水平垂直居中)
在工作过程中一直碰到关于css布局的问题,其实除了margin:0 auto之外,还有一些很灵活的方法水平居中1)使用inline-block+text-align,先将子框由块级元素改变为行内块元素,再通过设置行内块元素居中以达到水平居中。对子框设置display:inline-block,对父框设置text-align:center。<div class="parent"> ...
2018-03-09 14:32:24
258
转载 5个你可能不知道的CSS属性
每年都有新的CSS属性被标准化,并在主流浏览器中可用。 它们旨在使Web开发人员的工作变得轻松,创造出新颖美丽的网站。在这篇文章中,我将介绍5个相对较新的CSS属性,你可能从来没有听说过,我觉得很有趣。 本文的目的是带领你总览这些CSS的属性,告诉你可以使用哪些值,它们的使用场景,还有一些例子。具体来说,这五个CSS属性可以分为以下三类:书写显示(font-di
2017-08-15 11:26:07
864
原创 break、continue和return的区别
break:退出最内层循环或者退出switch语句,表示不执行这个循环,不执行switch语句了;continue:退出当前循环,重新开始执行下一次的循环return:退出正在执行的函数
2017-08-04 16:46:46
503
转载 CSS 样式书写规范
编码设置采用 UTF-8 编码,在 CSS 代码头部使用:1@charset "utf-8";注意,必须要定义在 CSS 文件所有字符的前面(包括编码注释),@charset 才会生效。例如,下面的例子都会使得 @charset 失效:1
2017-08-03 13:33:17
620
原创 时间格式的转换
我们在写页面的时候经常会遇到时间格式的处理,因为不知道后台的小哥哥小姐姐们会突然传过来什么类型的值,一串字符串、还是时间戳,还是正常的日期对象,也可能产品要求要求我么不一样的去显示时间,所以要十八般武艺精通//时间戳转换为时分秒格式function add0(m){return m}function format(times){//times是整数,否则
2017-08-02 16:54:46
357
转载 编写自己的代码库(javascript常用实例的实现与封装)
1.前言 因为公司最近项目比较忙,没那么多空余的事件写文章了,所以这篇文章晚了几天发布。但是这也没什么关系,不过该来的,总是会来的。 好了,其他的不多说的,大家在开发的时候应该知道,有很多常见的实例操作。比如数组去重,关键词高亮,打乱数组等。这些操作,代码一般不会很多,实现的逻辑也不会很难,下面的代码,我解释就不解释太多了,打上注释,相信大家就会懂了。但是,用的地方会比较,如果项目有哪个地方需
2017-08-02 13:56:44
619
原创 怎样不使用cookie取上一个页面的值
使用参数将他们放到跳转的地址栏中,去选取 获取地址栏参数:window.location.search,使用split(“&”)和split(“=”)拆分成数组,放到数组中,有中文时,使用decodeURL()进行解码
2017-08-02 13:52:20
514
原创 模仿单选按钮
$(this).addClass(“active”).siblings().removeClass(“active”) active是选中的样式
2017-08-02 13:39:43
477
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅