linux上使用nvm
# 介绍
nvm 允许你通过命令行快速安装和使用不同版本的 node。
# 安装
# 快速安装
通过运行 curl 命令进行安装:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash |
nvm 允许你通过命令行快速安装和使用不同版本的 node。
通过运行 curl 命令进行安装:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash |
以前做移动端项目的时候都是用 rem 来做适配,现在基本上都是通过 viewport 单位来做。 postcss-px-to-viewport 就是一个将 px 单位转换为视口单位的 (vw, vh, vmin, vmax) 的 PostCSS 插件,它可以将你 CSS 中的 px 单位转化为 vw,1vw 等于 1/100 视口宽度。
平常工作中,有时候需要对浏览器的滚动条样式做调整,此时解决方案一般有以下几种方式:
自己通过 js 手写一个滚动条,不过性能不好,可能会出现奇怪的 bug(不推荐)
使用 css 的::webkit-scrollbar 去修改滚动条样式,不过这样的话只在 webkit 内核的浏览器上生效,火狐浏览器上不生效(若能说服用户只使用谷歌浏览器,倒是可以试试)
使用 UI 组件库中的滚动条组件,比如 elementui 中的 el-scrollbar 组件,不过大家也都知道 el-scrollbar 并没有出现在官方组件文档中,原因是什么呢?大家看一下 el-scrollbar 组件的源码,就会发现,这个组件是使用 js 去操作滚动距离,所以性能也并不是最优,源码目录: node_modules/element-ui/package/scrollbars
今天给大家推荐一款在 vue 中使用的滚动条组件,之所以好用主要体现在轻量级以及这个组价是用 css 搞一个滚动条,保留了原有的滚动条,所以性能非常不过,这个组件的名字叫做: simplebar-vue ,当然也有 react 和 angular 版本的,大家可去 github 上看下。
vue 版本的 simplebar 的 github 地址:https://github.com/Grsmto/simplebar/tree/master/packages/simplebar-vue
对于 Url 来说,之所以要进行编码,是因为 Url 中有些字符会引起歧义。比如以下几种场景:
1. 场景一
路径中包含有中文。然而 Url 中不能包含任何非 ASCII 字符,如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。
https://code-nav.top/download/3?type=视频教程 |
2. 场景二
Url 参数字符串中使用 key=value 键值对这样的形式来传参,键值对之间以 & 符号分隔,如 /s?q=abc&ie=utf-8 。如果你的 value 字符串中包含了 = 或者 & ,那么势必会造成接收 Url 的服务器解析错误,因此必须将引起歧义的 & 和 = 符号进行转义,也就是对其进行编码。
根据 RFC 标准,有些符号在 URI 中是不能直接传递的,要按照规定格式进行编码,下面我们看看哪些字符需要编码传递。
DOMContentLoaded、load、beforeunload、unload
HTML 页面的生命周期包含三个重要事件:
DOMContentLoaded —— 浏览器已完全加载 HTML,并构建了 DOM 树,但像 <img> 和样式表之类的外部资源可能尚未加载完成。
load —— 浏览器不仅加载完成了 HTML,还加载完成了所有外部资源:图片,样式等。
beforeunload/unload —— 当用户正在离开页面时。
每个事件都是有用的:
- DOMContentLoaded 事件 —— DOM 已经就绪,因此处理程序可以查找 DOM 节点,并初始化接口。
- load 事件 —— 外部资源已加载完成,样式已被应用,图片大小也已知了。
- beforeunload 事件 —— 用户正在离开:我们可以检查用户是否保存了更改,并询问他是否真的要离开。
- unload 事件 —— 用户几乎已经离开了,但是我们仍然可以启动一些操作,例如发送统计数据。
在 el-upload 上传重复文件时,通过 before-upload 方法过滤后,return false 时,会触发 remove 事件。然而,我们的 remove 方法中存在删除接口,会把原来的重名文件通过接口删除,刷新后界面后,会发现原来的文件丢失。