最近在做项目的时候有一个需求,需要导入 word 文档,并且需要支持多选。element-ui
的 upload
组件支持多选文件,只需要配置参数 multiple
为 true
即可。但是这个组件默认会将多选的文件分多次进行上传,于是就会存在多次的上传请求,由于后台的接口要求是一次请求能够上传多个文件,且我们也知道请求多了会对服务器造成更大的压力,因而基于多种原因,这个 upload
的上传行为得进行改造一番。
element-ui文件上传一次请求上传多个文件
次访问
次访问
最近在做项目的时候有一个需求,需要导入 word 文档,并且需要支持多选。element-ui
的 upload
组件支持多选文件,只需要配置参数 multiple
为 true
即可。但是这个组件默认会将多选的文件分多次进行上传,于是就会存在多次的上传请求,由于后台的接口要求是一次请求能够上传多个文件,且我们也知道请求多了会对服务器造成更大的压力,因而基于多种原因,这个 upload
的上传行为得进行改造一番。
次访问
去看示例在 JS
中我们都知道有一种数据类型叫数组,平常也用得很多,这里看到数组的介绍。但什么是类数组呢?
在 JS
中存在一些对象,它们都带有 length
属性,却又不具备数组的那些方法,这些对象我们它叫做类数组。那么类数组有哪些呢?
jQuery
对象
1 | var aList = $('.tagcloud').find('a'); |
如上通过jQuery获取的元素集合就是一个典型的类数组。
次访问
一个 css
文件的核心内容是由许许多多的 css
规则组成的,而每个规则又包含了两部分:选择器和声明;声明块里可能又包含多个声明,每个声明又是由属性和值组成的。这个大概就是 css
的代码结构。
这么多的规则就像一个小镇上的房子一样,如果房子建造之初,毫无规划胡乱建造,那等房子建造起来的时候,从远远望去就会非常地错杂不堪,难以入目,给人的心里埋下了非常糟糕的印象;又可能后期,由于发展的需要,要给小镇加修道路或者新建个学校,由于房子与房子之间连接得很混乱,所以这给后期重建镇子的人带来了很大的困难。
同样,在 css
的世界里,代码的排列布局也是非常重要的。良好的代码书写习惯能够让代码看起来更加干净简洁,给阅读者一种赏心悦目的感觉;好的代码便于开发发现错误,提高工作效率。所以作为一名好前端,很有必要养成一个良好的 css
编码习惯。
次访问
要是问你,你知道当下都有哪些图像格式嘛?我猜你肯定说不全,因为现在图像格式真的太多了,但是应该能说出这几个常用的格式:jpg
、gif
、png
和svg
。然后我再问你,知不知道这几个格式有什么区别?各自的适用场景又是什么呢?logo
应该是选择 svg
还是 png
?而截图是选 jpg
还是 png
好?在不生成过大文件的前提下,文件的最优质量是多少?了解每个图像格式的工作原理以及它们各自的利弊可以帮助回答这些问题。
在过去几年中,数字化设计和前端开发里大量的研究和测试工具已经帮助我们搞清楚了这些问题。在本文中,我将展示一下每种格式的工作原理,它们各自的优点以及在网页使用时的压缩与保存方法。
Lossless
)和无损(Lossy
):一般我们聊到图片的时候经常会听到别人提到有损或者无损的字眼,那么什么是有损和无损呢?无损就是图片在压缩保存后虽然占用的存储更小了,但是图像的呈现质量依然如旧;而有损则是相反,图像随着一次又一次的压缩后,质量会变得越来越差。Indexed color
)和直接色(Direct color
):按照不同的颜色深度可以将颜色分为索引色和直接色。索引色就是图像作者指定图片的用色总共不超过 256 种;而直接色则是对颜色使用没有限制,可以存在成千上万的颜色值。raster
)和矢量格式(vector
):图像根据信息的表示方式可以分为光栅图和矢量图。光栅图也叫作位图,点阵图或者像素图,图的最小单位是由一个个带颜色的像素组合而成,在 Photoshop
里把图片放到最大,将看到许许多多的像素方块,所以光栅图在伸缩的时候图像可能会失真;而矢量图则是以由点、线和一些几何图形为基础,通过数学计算来排列组合而成,这种图在伸缩的时候能完好的保护质量。次访问
去看示例CSS
自定义属性,很多人又把它称之为 CSS
变量,是由用户自己定义的用来指定 CSS
属性值的变量。来看一个简单的例子:
1 | :root { |
上面这个例子中,首先在 :root
(文档根元素即 html
)处定义了一个全局变量,变量名称叫 color-red
。然后在 red
元素里使用了这个变量,那么该元素颜色将变成红色。
次访问
去看示例flexbox
顾名思义 flexible box
弹性盒子,是 css3
中定义的一种新的布局方式。通过在某元素上使用 display: flex;
即可把该元素定义为 flex
容器 ( flex container
),而容器的所有子元素就是 flex
项目 ( flex item
)。再介绍 flex
语法之前,先来看看一个重要的东西。
inline
或 inline-*
元素
此类元素需要水平居中,则父级元素必须是块级元素(block level
),且父级元素上需要这样设置样式:
1 | .parent { |
块级元素
块级元素水平居中,需要设置 margin-left
和 margin-right
为 auto
,且需要显示设置宽度,不然就占满整行,就无所谓水平居中了。
1 | .block { |
次访问
chrome
浏览器是每个前端开发者最常用的浏览器,因为界面简洁友好,开发者工具功能强大且简单易用,大大提升了开发效率。所以很有必要了解 chrome
开发者工具都有哪些很常用或实用的功能。
写这篇文章的时候,chrome 的版本如下:
一个元素可以使用 background
来设置他的背景特性,background
是一个复合的属性,包括了 8
个子属性。
background-color
用于定义元素的背景颜色,值可以是具体的十六进制颜色值 #dedd6f
,可以是 rgb
颜色值rgb(222, 221, 111)
,或者直接用颜色对应的英文表示 gray
,甚至是用关键字 transparent
来表示透明的颜色。
1 | .yellow { |
次访问
高阶函数是指满足下列条件之一的函数:
函数可以作为参数进行传递
函数可以作为返回值进行输出JavaScript
语言中的函数显然满足高阶函数的条件,在实际开发中,无论是将函数当做参数传递,还是让函数的执行结果返回给另外一个函数,这两种情形都有很多应用场景。
把函数当做参数进行传递,这代表我们可以抽离出一部分容易变化的业务逻辑,把这部分业务逻辑放在函数参数中,这样一来就可以分离业务代码中变化和不变的部分。