自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

E_li_na的博客

前端开发日常发布

  • 博客(120)
  • 资源 (1)
  • 收藏
  • 关注

原创 flex实现百分比布局

html:<div class="item-info"> <div class="item item-60"></div> <div class="item"></div> <div class="item"></div></div>sass:.item-info{display:flex;.item{flex:1&.item-60{flex:60% 0 0;}}}

2022-02-18 16:53:12 1415

转载 el-input输入值设置最大值、最小值问题

如果使用max、min属性,则必须同时加上与type=“number”。设置type="number"样式,输入框尾部会出现一个上下箭头,min和max只能控制用箭头输入的最大值最小值,对键盘打字输入是限制不住的。如果需要限制input输入的值,最实用的做法是给input绑定一个change事件,在change事件中用正则判断。这里会涉及到一个type=”number”同时正则判定,对"e"失效的问题。(要看怎么理解失效),可以同时watch一下el-input绑定的model设置了type=”num

2021-10-22 15:19:38 20988 3

原创 ES12到ES6

ES12(2021)1、replaceAll所有符合规则的字符都将被替换掉const str = 'hello world'str.replaceAll('l','')//'heo world'2、Promise.anyPromise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promiseconst

2021-10-14 17:01:30 357

原创 yarn如何配置离线镜像

1、配置是离线镜像缓存文件夹的位置yarn config set yarn-offline-mirror ./npm-packages-offline-cache2、帮助清理所有未链接的依赖项(可以不设置)。yarn config set yarn-offline-mirror-pruning true3、上面设置将创建~/.yarnrc,如果不是全局设置,而是仅当前项目要设置,则需要移动该文件到当前项目目录中:mv ~/.yarnrc .注意后面有个点4、删除之前的node_modu

2021-10-08 11:03:25 1726

原创 localeCompare实现中文排序

定义:用本地特定的顺序来比较两个字符串。语法:stringObject.localeCompare(target)参数:target——要以本地特定的顺序与 stringObject 进行比较的字符串。返回值:说明比较结果的数字。(1)如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。(2)如果 stringObject 大于 target,则该方法返回大于 0 的数。(3)如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

2021-09-13 14:39:50 616

原创 webpack4实现热更新

webpack4.41.4const webpack = require('webpack')module.exports = { plugins: [ new webpack.HotModuleReplacementPlugin() ], devServer: { hot: true }}

2020-12-24 11:42:43 177 1

原创 document.documentElement.clientHeight 与 document.body.clientHeight

document.documentElement.clientHeight 与 document.body.clientHeight这两个是有区别的,前一个是html标签,后一个是body标签。这两个是不同的东西,如果这两个的值返回相同的值,应该是设置了 body,html{ height: 100%}...

2020-12-18 10:01:45 363

原创 vue实现图片预加载实操

业务场景是这样的:在页面里有一个提醒文案,提醒文案里有个按钮,点击按钮会弹出示例弹窗,弹窗里上面有标题,中间一个比较大的图片,27kb;下面有个按钮。在苹果手机使用微信打开时,上面的标题和下面的按钮都先于图片加载出来。中间的按钮过了一会才渲染出来。为此,我也懒得去找ui沟通能不能把图片弄小一点,正好试试图片预加载这个功能。于是,在网上搜索到1、实例化Image对象,添加src为需要预加载的图片路径function preloadImg(url) { var img = new Image()

2020-12-17 16:51:44 1835 1

原创 wx.chooseImage报错

wx.chooseImage 必须在真机进行 不能在开发者工具

2020-12-16 10:01:56 369

原创 elementui实现单元格滚动条

实现某一单元格有滚动条 <el-table-column prop="disclosureAbstract" label="文章摘要" min-width="180"> <template slot-scope="scope"> <div style="max-height:70px;overflow-y:auto;">

2020-11-09 17:16:25 1047

原创 iphone上使用iframe时页面宽度变大的解决方法

场景是这样的,业务需要展示协议,我们公司所有产品的多个地方都有展示协议的需要,于是,我们就封装了一个组件,一个iframe里读取从后管获取的协议页面。起初,协议页面没有设置上下左右边距,ios的页面和安卓的页面还是没有什么区别的。后来业务提了新需求,美化了一下页面,在协议页面上下左右加了边距,于是就出现了ios整体页面宽度大于屏幕宽度的bug,页面出现横向滚动条,协议内容部分被遮盖,需要用户手动拉一下滚动条才能看全协议内容。网上查了ios使用iframe时有个bug:页面宽度会扩大,超出一个屏幕的宽度。

2020-10-21 10:57:46 1150

原创 elementui里input type=“textarea“无法输入及提示校验信息

场景1:是这样的,input 写在el-dialog里面,根据另一个字段决定要不要显示这个input。新增和修改用的都是这个dialog。新增的时候input框输入后没有提示校验信息;但是,修改的时候,如果修改的是让另一个字段使得这个input从隐藏改成显示,然后在这个input里输入值后,不会在input框里显示值,但是查看data里是有值的。原因:出现这种情况时因为视图没有更新。解决办法:网上说的解决办法有添加@input事件。我按照要求添加了@input事件后,然后强制更新this.$forceU

2020-09-18 11:12:14 4777

原创 js遍历数组三种方式对比利弊

js遍历数组有几种方式:for,forEach(es5),for of (es6)for循环略显臃肿;forEach不臃肿,但是,不能用break中断,也不能用return语句跳出去;for of 弥补forEach的不足,还可以遍历字符串;遍历类数组;支持Map,Set对象的遍历...

2020-08-31 19:39:11 272

原创 路由跳转时的参数传递

1.params传递:this.$router.push({ name:'路由名字', params:{ id:'1234' }})获取:this.$route.params.id2.path传递:this.$router.push({ path:'mypathUrl'+id })获取:this.$route.params.id需要在路由表中做相应的配置:{ path:'mypathUrl/:id'}3.query这种方式会在url地址中出现参数

2020-08-31 19:37:31 560

原创 element-ui弹窗清除提示信息

业务情景是这样的:需要在弹窗里填写表单,弹窗提交数据后再次打开时会自动校验,导致弹出一些提示信息。不过,这些字段还没填写,业务上最好是不要出现这些提示信息。所以,需要在再次打开的时候清除提示信息。 add(){ this.operation = 'add'; this.dialogVisible = true; this.$nextTick(() => { this.$refs.form.resetFields(); })

2020-07-22 17:05:39 1773

原创 vue之v-for遍历

vue可以遍历数字,数组,对象数组,对象,字符串,2.6之后可以遍历Iterable ,包括原生的 Map 和 Set。不过应该注意的是 Vue 2.x 目前并不支持可响应的 Map 和 Set 值,所以无法自动探测变更。<div id="example"> <!--循环数字--> <span v-for="count in 5" :key="index">{{count}}</span> <!--循环

2020-07-14 14:40:02 919

原创 手写swiper组件基本原理

主要使用touchstart,touchmove,touchend事件touchstart时记录用户触摸点的x,y坐标,存入数组[x,y],将slide Container的transition设置为0s(默认有transition: all 0s ease 0s)touchmove事件也会进行触摸位置移动,触摸的距离len为用触摸点的x坐标e.touches[0].clientX减去touchstart时记录的数组里的x坐标.(得出的len为负值)移动的位置为:负的slide container

2020-07-14 11:24:50 1809

原创 总结javascript中的遍历

(1)for…in可用范围:字符串,数组,对象不可用范围:Map,Set返回:字符串和数组返回下标,对象返回属性名称缺点:无法保证属性的顺序for(let i in 'good'){ console.log(i);//0,1,2}for(let j in ['a','b','c']){ console.log(j);//0,1,2}for(let k in { a:"0",b:"1"}){ console.log(k);//a,b}for (let prop in new

2020-07-05 10:54:41 156

原创 由vue遍历对象引发对深度拷贝的思考

项目中用v-for遍历一个对象{ count:"",age:""}进行参数渲染,输入参数后送到后端要转化为JSON字符串,于是提交之前新声明了一个对象,值为原先对象的JSON.stringify字符串。但是,问题来了,后端接口还没部署上去,调用的时候是502,接口调用不成功不会走剩下的流程。此时,数据已经改动为JSON字符串了,v-for遍历的对象改成JSON字符串“{“count”:“bb”,“age”:“ff”}”。于是遍历时就以字符串的形式进行渲染,出现如下图所示的参数渲染。那么,如何避免出现这

2020-07-02 09:10:40 1164

原创 对element-ui的label和el-tooltip同时使用插槽

我们看element-ui官网可以发现el-tooltip可以使用slot=“content”这个具名插槽来自定义想显示的文案如果想要在标签上显示这个el-tooltip的话,就必须让标签也有个插槽,在这个插槽里插入el-tooltip这个节点。 <el-form-item prop="runKey"> <template slot="label"> <span style="positi

2020-06-30 11:33:26 5521 3

原创 ios微信软键盘之殇

先说一下业务场景。界面有弹窗,在弹窗内输入时,弹出软键盘输入短信验证码。验证成功后隐藏弹窗,弹出有复制按钮的弹窗。点击复制按钮,复制相关内容。在开发这个功能的时候,有两个渠道,一个是支付宝h5,一个是微信h5。结果是微信IOS端出现了bug,弹出有复制按钮的弹窗后,点击复制按钮没有任何反应。于是,我这个比较直的人就一直点,点点点,并且进行了计数,一开始,发现大概点了有一分钟后,界面没有卡了,点击复制按钮成功复制到了内容。我首先想到的是复制插件是不是有问题,查看了复制插件的源码,发现复制插件并没有设置什

2020-06-21 21:55:03 336

原创 用vue写npm插件

一、调用插件通过全局方法Vue.use()使用插件,必须在new Vue()启动之前使用这个方法。main.jsimport cyui from 'cyui';Vue.use(cyui);new Vue({});还可以传入可选的配置对象:Vue.use(cyui,{ someOptions:true });那么,平时,我们这样调用的插件究竟是怎么写出来的呢?二、开发插件官方...

2020-03-22 11:14:38 380

转载 Vue-loader.conf.js

'use strict'// 工具=> build/util.jsconst utils = require('./utils')// 配置=> build/config/index.jsconst config = require('../config')const isProduction = process.env.NODE_ENV === 'production'...

2019-06-26 15:23:02 356

原创 使用vue-loader不必require图片

以前在写vue的时候,经常要写这样的代码,把图片提前require给一个变量,然后再把变量传给组件(注意是组件,不是原生的东西,不是原生如img):<template> <div> <avatar :default-src="logoUrl"></avatar> </div></template><scr...

2019-06-26 15:17:53 1604

原创 yarn install报网络问题

yarn install的时候老是有一个包没有下载下来,然后就报网络问题了。这其实不是网络问题,实际上是这个包太大,yarn太久没下载下来就直接报网络错误了。There appears to be trouble with your network connection. Retrying…...

2019-05-10 15:31:54 4882

转载 react类中自动绑定

我们可以在类中通过使用ES6增加的箭头函数的方式来实现隐形绑定作用域。而按照之前的处理,我们需要显式的去为我们写的方法进行绑定,类似于 this.myMethod = this.myMethod.bind(this)这样。当我们的类中有很多方法时,会增加大量的绑定的代码的书写。现在我们就可以通过箭头函数的方式来简化这个过程。import React, { Component } from Rea...

2019-04-30 16:00:18 235

原创 javascript的同步异步操作

数组是引用类型,console.log是异步操作,console.log在前面而对数组的操作是在后面时,console.log打印出来的数组可能是被操作之后的数组。为了避免这样的情况发生,必须对数组进行深拷贝。...

2019-04-24 19:20:14 276

转载 Vue组件通信中eventBus的使用

Vue组件通信中eventBus的使用

2019-04-12 16:48:35 571

原创 详解:为什么在keep-alive组件中使用computed计算属性数据没有变更?

第一步:computed在生命周期的哪个阶段执行?(1)在new Vue()的时候,vue\src\core\instance\index.js里面的_init()初始化各个功能function Vue (options) {if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue)) { ...

2019-04-11 10:40:50 1980

原创 Invalid configuration object. Webpack has been initialised using a configuration object that does no

webpack配置报错描述: 一般遇到这个错误,说明你编写的代码语法与本地安装的webpack版本不兼容。原因是项目要用到px转换为rem,使用postcss-px2rem这个插件的时候,0.3.0版本的配置如下:var px2rem = require('postcss-px2rem');module.exports = { module: { loaders: [ ...

2019-02-26 18:05:46 6696

原创 小程序VM144:1 request:fail url not in domain list

可能原因:域名未完成备案url里有端口(可以有端口存在)报错提示说请求的url不在域名列表里,应该是还没有配置服务器域名,可点击开发者工具右上角 详情-域名信息,看看是否配置了域名;详情-&gt;项目设置-&gt;不校验合法域名...

2019-02-22 10:11:14 6956

翻译 禁止iphone上input[type='text']自动放大

如果font-size小于16px,浏览器将自动放大,然而,元素的默认font-size是11px(至少在chrome和safari).所以设置元素的样式至少为16px就不会产生放大效果。另,select元素必须附加focus伪类:input[type=&amp;quot;color&amp;quot;],input[type=&amp;quot;date&amp;quot;],input[type=&amp;quot;datetime&amp;quot

2019-01-24 09:59:14 2101

转载 image-compressors前端图片压缩工具

image-compressorscompressorSettings.toWidth:结果(压缩/拉伸)图像的宽度(以像素为单位),默认值:100。compressorSettings.toHeight:结果(压缩/拉伸)图像的Mime类型,允许值image / png,image / jpeg,默认值:“image / png”compressorSettings.quality:结果压...

2019-01-23 18:17:40 1226

原创 浏览器缓存

浏览器缓存:https://segmentfault.com/a/1190000017962411#articleHeader10

2019-01-21 14:45:23 172

原创 Vue样式scoped存在的问题

为了解决css存在的一大痛点:天生全局性,每个通过 vue-cli 创建的 Vue.js 应用都内置了两个很好的解决方案:Scoped CSS 和 CSS Modules (模块式 CSS)。现在我们只介绍Scoped CSS.我们只需在&amp;lt;style&amp;gt;标签上添加scoped属性就可以让样式只应用到该组件的元素上。&amp;lt;template&amp;gt; &amp;lt;button class...

2018-11-30 15:26:17 555

翻译 用js创建一个可拖曳的元素

我们一直使用并且理所当然的常见手势是能够在屏幕上拖动元素。尽管这种拖拽手势有多么常见,但是没有很好的内置支持来使网络上的元素可拖动。如果我们希望超越鼠标并支持触摸之类的东西,那就更是如此!这就是本教程的用武之地。在接下来的几节中,我们将介绍一个纯粹的基于JavaScript的解决方案(也就是没有jQuery),它允许您将任何无聊的元素转换为可以在页面上拖动的元素。继续~1.例子原文链接2....

2018-10-23 18:01:42 1225

原创 异步调用三部曲

一、回调地狱 getMoreData(a,b =&amp;gt; { getMoreData(b,c =&amp;gt; { getMoreData(c,d =&amp;gt; { getMoreData(d,e =&amp;gt; { console.log('e'); }) }) }) })})二、Promise改进回调地狱.then(a =&amp;gt; getMor...

2018-10-08 15:06:44 201

转载 wx.getLocalImagData接口的使用时需要注意的点

这篇主要讲到wx.getLocalImagData接口的使用时需要注意的点。wx.getLocalImgData({localId: '', // 图片的localIDsuccess: function (res) {var localData = res.localData; // localData是图片的base64数据,可以用img标签显示}});该接口获取到的是图片的数据...

2018-10-08 11:35:40 751

原创 javascript格式化数字成K,M等格式

数字格式化成K,M等格式 function nFormatter(num, digits) { const si = [ { value: 1, symbol: &quot;&quot; }, { value: 1E3, symbol: &quot;K&quot; }, { value...

2018-10-07 20:39:36 6990

原创 vue2自定义指令directive

除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。官网1.分类 =&amp;amp;gt; 全局 、局部自定义指令有全局指令和局部自定义指令// 注册一个全局自定义指令 `v-focus`Vue.directive...

2018-10-07 16:43:32 782

jdk-9.0.1_windows-x64_bin

关于用React和Boottrap开发Web网站的书籍。英文版的 关于用React和Boottrap开发Web网站的书籍。英文版的

2017-12-04

空空如也

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

TA关注的人

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