简介
Axios是一个基于Promise网络请求库,作用于node.js和浏览器中。在服务端使用原生node.js http模块,在浏览器段使用XMLHttpRequest。
拦截请求和响应
转换请求和响应数据
取消请求
超时处理
查询参数序列化支持嵌套项处理
自动将请求体序列化为:
JSON(application/json)
Multipart/FormData(multipart/form-data)
URL encoded form(application/x-www-form-urlencoded)
将HTMLForm转换为JSON进行请求
自动转换JSON数据
获取浏览器和node.js的请求进度,并提供额外的信息(速度、剩余时间)
为node.js设置带宽限制
兼容符合规范的FormData和Blob(包括node.js)
客户端支持防御XSRF
API
axios.request(config)
axiox.get(url[, config])
axiox.delete(url[, config])
axiox.head(url[, config])
axio ...
判断一个变量是否为数组?
可靠地检测数组方法
1.利用Object的toString方法
12var list = [1, 2, 3];Object.prototype.toString.call(list);//[object Array]
2.利用ES5的Array.isArray()方法
12var list = [1, 2, 3];Array.isArray(list);//true
数组的原生方法有哪些?
会改变自身的方法:
copyWithin、fill、pop、push、reverse、shift、sort、splice、unshift
不会改变自身的方法:
concat、includes、join、slice、toSource、toString、indexOf、lastIndexOf
遍历方法:
forEach、entries、every、some、filter、find、findIndex
keys、map、reduce、reduceRight、values
如何将类数组的变量转化为数组?
如果是ES6,可以用Array.from()方法 ...
自动分配宽高123justify-content: space-between;display: grid;grid-template-columns: repeat(auto-fill, 96px);
CSS-编程技巧
使用百分比而不是固定的宽度。或者使用相对的宽度:vw, vh, vmin, vmax
在大屏幕上要有一个固定宽度的元素时,使用 max-width,让其不用media query就能自适应小屏幕
在 img, object, video, iframe 加上 max-width: 100%
当需要填充元素的背景图片时,使用 background-size: cover 让图片能保持原始比例。在移动设备上使用高解析图片不是明智的做法
制作 grid 页面时让 viewport width 来决定每一列的数量。Flexbox 或者 display: inline-block 就可以做到
当制作多栏的的文字区块时,设定 column-width 而不是 column-count,让你在小屏幕上会得到一个栏位
减少重复代码原则:
半透明的边界
See the Pe ...
前言浮动float的渲染位置在行框与包含块之间,这样可以使得行框内文字与浮动元素不重叠,并且环绕它显示。在布局过程中经常使用它实现左右并排布局的效果。但是,由于浮动特性,容器如果没有明确设定高度,会依照普通流内元素高度设置,这样就会导致脱离普通流的浮动元素溢出容器,影响后面的元素布局。
已知的清除浮动元素方法:
采用一个HTML标签,以及css的clear属性,手动清除浮动;
采用伪类:after动态建立一个块元素,设定clear属性,清除之前的浮动元素;
采用css overflow非visible值(overflow:auto/overflow:hidden)设定使父容器包含浮动元素;
采用display:table/display:table-cell等table系列属性将父元素变成table形式自动包含浮动元素;
使用table以及td标签作为浮动元素容器;
采用float:left/float:right方式将父元素同样浮动,就可以包含浮动内容;
在IE 6/7的标准文档模式中设置width/height/zoom等样式来自动清除浮动;
使用clear样式清除1.cl ...
此系列为网页设计中经常使用到的垂直居中解决方法,通过本文进行详细地总结。
使用line-height做垂直居中
See the Pen
使用line-height做垂直居中 by whjin (@whjin)
on CodePen.
使用line-height + inline-block做多行文字的垂直居中
See the Pen
使用CSS line-height + inline-block 做多行文字的垂直置中 by whjin (@whjin)
on CodePen.
使用:before + inline-block做垂直居中
See the Pen
使用line-height+inline-block做多行文字的垂直居中 by whjin (@whjin)
on CodePen.
使用padding做垂直居中
See the Pen
使用padding做垂直居中 by whjin (@whjin)
on CodePen.
使用absolute + margin负值做垂直居中
See ...
本地工作区文件恢复1git checkout <filename/dirname>
远程分支删除后,删除本地分支及关联123git branch --unset-upstream <branchname>git branch --unset-upstream feature/test
修改提交时的备注内容123git commit --amendgit log --pretty=online
修改分支名123git branch -m <oldbranch> <newbranch>git branch -m feature/stor-13711 feature/story-13711
撤回提交1234567git reset --soft [<commit-id>/HEAD~n]git reset --soft HEAD~1git reset --mixed HEAD~1git reset --hard HEAD~1
撤销本地分支合并1git revert <commit-id>
恢复误删的本地分支 ...
命名禁止缩写
精简扼要地对class命名,请勿使用自定义缩写。
class name的命名必须是行为、有语意的。
禁止在非特殊情况下写!important
CSS本身有权重设计,任意地使用!important会造成权重混乱而无法维护。
不可轻易限定宽高
用户可以自行设定自己的浏览器,例如Android手机可以设定显示字体大小,写死的高度会让字体相互重叠。
RWD失效
移动设备的高度是无限的,宽度是有限的。
请不要把宽写死。
img请让它自动缩放
请不要替img的容器设定宽或高,让它根据设备自行缩放。
请使用bootstrap的img-responsive。
如果确实要用: 12width: 100%;height: auto;
如果要给img border-radius设定样式,请使用父元素控制行为,保持img只载入图片,没有样式。
优先使用grid排版
请不要花很多时间在写media query,设定一堆breakpoint,自己写组件样式,自己控制每种设备上的容器宽度。
请使用grid system,这些都是已经成熟的框架,而且有些也已经帮你处理了浏览器相容问题。
...
本文总结CSS3中两个用来做动画的属性,一个是transition,另一个是animation。
差异比较
CSS3
差异
transition
在给定的持续时间内平滑地更改属性值(从一个值到另一个值),也就是只需要指定开始与结束的参数,参数改变时就触发动画。
常用语鼠标事件(:hover、active、:focus、:click)或键盘输入时触发
需要事件触发,无法在网页加载时自动发生。一次性,不能重复发生,除非一再触发。
只能定义开始状态和结束状态,不能定义中间状态。
animation
可以自行写动画开始、进行间、结束时各阶段的变化,适合用来做较细微的动画表现。需要明确的指定关键帧(@keyframe)的参数。
网页加载时会直接执行,可以自行控制各阶段动画的变化
animation和transition最大的不同在于transition是当参数改变时触发,而animation则是直接就执行,所有动画效果需要明确的指定关键帧的参数。
CSS3
简写顺序
transition
[property名称][duration ...
pnpm 有什么优势
速度快 节省磁盘空间
pnpm ~/.pnpm-store
建立非扁平化的node_modules .pnpm 软链接
多项目共用一份依赖
前端权限管理的模型
ACL:基于用户的权限管理模型
只需要给当前的用户授权或取消权限
user permission
好处:清晰 简单
缺点:用户量增长,针对每个用户都要维护记录 record 成本高
RBAC:基于角色的权限管理模型
权限跟用户无关 用户-角色-权限
role - permission
user - role
ABAC:基于属性的权限管理模型
可扩展性很高
VSCode配置12345678910111213141516171819202122232425262728293031323334353637383940// .prettierrc.jsmodule.exports = { // 一行最多多少个字符 printWidth: 150, // 指定每个缩进级别的空格数 tabWidth: 2, // 使用制表符而不是空格缩进行 useTabs: tru ...
解决Vue部署 404 问题123456789101112131415server { listent 80 server_name www.example.com location / { index /dist/index.html try_files $uri /index.html }}const router = new VueRouter({ routers:[ { path: '*', component: NotFound } ]})
package.json12345678910111213141516171819202122232425{ "name": "vue-webrtc", "version": "1.0.0", "private": true, "type": "module&qu ...
