前端
文章平均质量分 65
进无止进
无尽之刃,无坚不摧。
展开
-
elementui中form表单input必填以及显示/隐藏小红星星
elementUI中form表单input必填,显示/隐藏红色星号原创 2022-06-08 14:23:19 · 17414 阅读 · 1 评论 -
老生常谈JS数组去重
数组去重,历史悠久的话题了,不过今天只记录个人比较喜欢的方法1、数组去重需求项目需要对类似这种数组去重:let lists = [{ id: 1, name: '法外狂徒', age: 20},{ id: 3, name: '张三', age: 20},{ id: 1, name: '法外狂徒', age: 20},{ id: 4, name: '李四', age: 20}]该数据以id作为唯一标识,去重时只需去除重复id的那一项即.原创 2020-09-09 17:41:05 · 651 阅读 · 0 评论 -
Vue Axios之生产/开发环境跨域问题解决
Vue Axios开发环境、生产环境跨域问题解决一、前置知识首先要了解几个Vue-cli的几个配置参数。另:从 Vue CLI 3.3 起baseUrl已弃用,请使用publicPath1. publicPath它是部署你的应用包时的基本URL。默认为 '/'。Vue Cli默认项目是被部署在域名的根路径下。比如你要把打包生成的文件部署在https://www.lhch.com下,那么采用默认设置就行。那如果我们是部署在https://www.lhch.com/test/路径下呢?那么此时可以原创 2020-09-07 16:01:21 · 7542 阅读 · 2 评论 -
关于async和await
JavaScript中的async/await是AsyncFunction特性中的关键字。(读者可自行查阅改链接中内容)async定义的异步函数,通过使用 await,让异步函数的表现更像是同步函数。不用再层层回调。它是Generator函数的语法糖。其中async来声明该函数里有异步操作。await表示紧跟在后面的表达式需要等待结果与Generator函数比优点:内置执行器。Generator函数的执行必须依靠执行器,而 Aysnc函数自带执行器,调用方式跟普通函数的调用一样‘更好的语义。a原创 2020-07-01 12:19:30 · 690 阅读 · 0 评论 -
非常实用的ES6特性
1、展开操作符顾名思义,用于对象或数组之前的展开操作符(…),将一个结构展开为列表。如下:let firstHalf = [ one , two ];let secondHalf = [ three , four , ...firstHalf];这样写比较简洁、优雅,如果不用展开操作符,我们需要这样做:let firstHalf = [ one , two ];let secondHalf = [ three , four ];for(var i=0, i <firstH原创 2020-07-01 10:29:50 · 278 阅读 · 0 评论 -
观察者模式和发布订阅模式(续)
两年前写过一篇关于消息发布订阅的文章,当时是结合了实际的应用场景。看起来不够抽象,概括。今天试图抽象话的再去写一下自己的理解。上篇文章:发布 订阅 消息系统(1),可点击查看。此文续上篇文章,取名改为观察者和发布订阅模式。什么是观察者模式?观察者模式(Observer Pattern)定义了一种当对象之间存在一对多的关系时的一种行为模式。比如当一个对象被修改时,则会通知它的依赖对象并自动...原创 2020-01-16 14:23:43 · 331 阅读 · 0 评论 -
JS多页面间通讯
需求:项目中做了一个音乐播放器,后面Boss说用户同时打开了多个页面播放音乐,这个时候每个页面都在播放音乐,能不能只让当前用户操作的页面播放音乐。接到这个需求的时候,先去某云音乐看了一下,用的应该是WebSocket。给领导反馈一下后,领导说后端腾不出资源配合。那只能先排除这种方案了。当时的思路是这样的:具体是:给每一个打开的要播放的网页链接加一个唯一标识参数(uuid),点击播放的时...原创 2020-01-09 17:36:20 · 1405 阅读 · 0 评论 -
jQuery的onclick事件导致点击事件累计触发的问题
问题场景维护公司老项目的时候,发现以下问题。在使用jQuery中的click事件对页面中某个元素对象进行绑定时,如果不采用防抖/节流的写法会出现事件被多次绑定的情况。如果发生这种问题,会导致一次触发请求多次的情况,直接导致服务器的压力飙升。严重的话,服务器会直接挂掉。接下来具体说一下这个问题是如何形成的。<div onclick="handleClick()">点我<...原创 2019-08-12 09:40:33 · 1442 阅读 · 0 评论 -
JS中的parseInt,parseFloat,Number等数值转换函数
JS数值转换函数:Number()parseInt()parseFloat()Number()转换规则:如果是Boolean,分别转化为0 , 1如果是数字值,只是简单的传入和传出如果是null值,返回0如果是undefined, 返回NaN如果是字符串,遵循以下规则:- 如果字符串中只包含数字,(包括前面带正号或负号的情况),则将其转换为十进制数值,即"1"会变成 1,...原创 2019-08-14 10:27:07 · 3134 阅读 · 0 评论 -
JS中的call,apply和bind
梳理一下call,apply和bind,并尽量将其应用到实际开发环境中。/*apply()方法*/function.apply(thisObj[, argArray])/*call()方法*/function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);/*bind()方法*/function.bind(thisArg[, arg...原创 2019-08-13 15:15:51 · 185 阅读 · 0 评论 -
JS中的setTimeout
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。它们向任务队列添加定时任务。初始接触它的人都觉得好简单,实时上真的如此么?这里记载下,一路对其使用姿势变迁的历程。1.setTimeout()基础setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的...转载 2019-07-04 20:08:39 · 13338 阅读 · 0 评论 -
发布 订阅 消息系统(一)
1.从监听与发布说起我们写js代码的时候都知道有这样的事件:我们注册一个click方法 ,此时我们就为这个按钮添加了“监听”,基于“点击”事件的监听。以此来实现点击按钮提交表单数据的目的,在这里,我们通过点(发)击(布)这个动作,让系统知道:哦,我要提交这些表单。 这里的click方法,就是我们所要说的 “发布”。2.发布消息之后发生了什么当我发布登录消息的时候,就有很多模块...原创 2017-03-02 17:01:21 · 2448 阅读 · 0 评论 -
元素的水平垂直居中
1.行内元素水平居中a.将行内元素包裹在块级元素中,然后设置:text-align:center.box1 { background: #2b2b2b; margin: 0 auto; width: 100px; color: white; text-align: center; }2.块级元素水平居中块级元素的宽度一定,这就是我们平常所用原创 2017-03-03 15:35:47 · 607 阅读 · 0 评论 -
font-size: 0;解决inline元素间的空白间隙
在公司写页面的时候,会引用公司的一个公共css,其中给主体部分设置了font-size:0 这个属性。起初觉得有些不方便,因为有文字的部分都要去设置font-size。后来发现这个属性真的很好用!~原创 2017-07-07 12:37:31 · 7017 阅读 · 0 评论 -
JS里的事件委托
1. 什么是事件委托2.实现事件委托原创 2017-07-31 20:01:29 · 2015 阅读 · 0 评论 -
Vue中axios POST传参问题
最近做了一个后台的管理系统,为了实现回调,不得不进行层层的嵌套(callback hell)。第二版本的时候决定使用es6的新特性Promise对代码进行优化,为了兼容各浏览器环境,引入了一个兼容的promise.js。网上关于Promise的用法很多,就不做过多介绍。为了一次搞清这一新特性,决定研究一下这个promise.js的源码。( promise.js的下载地址)。原创 2018-04-10 20:02:18 · 18465 阅读 · 2 评论 -
fixed定位 input在IOS设备上光标位置异常问题
页面是个长页面,点击页面不同部分,会弹出弹窗,如果用absolute定位,那么弹窗的位置就难以定位,因而决定采用fixed定位,此时在IOS 11.2.x 系统中就 会出现点击input光标位置异常的问题。异常如图所示:原因分析fixed定位的元素,在该IOS系统存在bug,键盘会将fixed定位的元素上推,但是光标留在了原地,造成错位的现象。解决方案采用fixed定位,当点击激活...原创 2018-10-26 10:25:32 · 2345 阅读 · 0 评论 -
前端输入Emoji表情导致的错误
用户输入了emoji表情,提交的时候因为后端没有存储相应的emoji字符编码,导致报错异常。原因: unicode定义的emoji是四个字符,对于一些之前没有考虑过emoji表情的系统来说,其获取或者展示简直就是灾难。公司用的MySQL,其utf8字符集最多支持三个字符。解决方案改变MySQL编码集设置,比如将其编码从utf8转换成utf8mb4前端直接过滤掉emoji,可以用正则实...原创 2019-04-02 10:26:42 · 2095 阅读 · 0 评论 -
vue实现三级联动,多级联动
vue多级联动,三级联动原创 2019-04-25 10:34:54 · 32385 阅读 · 2 评论 -
JavaScript中闭包的理解
对于JavaScript中闭包的理解。只做个人总结学习之用。如有误,还望指出。原创 2016-12-16 19:43:03 · 535 阅读 · 2 评论