跳至主要內容
requestAnimationFrame动画

requestAnimationFrame动画

function animate({timing, draw, duration}) {

  let start = performance.now();

  requestAnimationFrame(function animate(time) {
    // timeFraction 从 0 增加到 1
    let timeFraction = (time - start) / duration;
    if (timeFraction > 1) timeFraction = 1;

    // 计算当前动画状态
    let progress = timing(timeFraction);

    draw(progress); // 绘制

    if (timeFraction < 1) {
      requestAnimationFrame(animate);
    }

  });
}

Mr.He小于 1 分钟JavaScriptrequestAnimationFrame
Web使用File

Web使用File

访问文件

<input type="file" id="input">

Mr.He大约 2 分钟JavaScriptFileReader
文件上传

文件上传

文件上传demo

接下来看一个简单的文件上传的例子:

<form method="post" enctype="multipart/form-data">
  <div>
    <label for="image_uploads">Choose images to upload (PNG, JPG)</label>
    <input type="file" id="image_uploads" name="image_uploads" accept=".jpg, .jpeg, .png" multiple>
  </div>
  <div class="preview">
    <p>No files currently selected for upload</p>
  </div>
  <div>
    <button>Submit</button>
  </div>
</form>

Mr.He大约 2 分钟JavaScriptFile
脚本defer & async

脚本defer & async

defer

defer 特性告诉浏览器不要等待脚本。相反,浏览器将继续处理 HTML,构建 DOM。脚本会“在后台”下载,然后 等 DOM 构建完成后,脚本才会执行

换句话说:

  • 具有 defer 特性的脚本不会阻塞页面。
  • 具有 defer 特性的脚本总是要等到 DOM 解析完毕,但在 DOMContentLoaded 事件之前执行。

Mr.He大约 2 分钟JavaScriptFileReader
Node源码安装

Node源码安装

wget https://nodejs.org/dist/v12.16.3/node-v12.16.3.tar.gz

tar zxvf node-v12.16.3.tar.gz

cd node-v12.16.3

./configure

make

sudo make install

node —version

Mr.He小于 1 分钟CLINode
NPM 版本管理

NPM 版本管理

npm install 问题

package.json中对应版本前为^ 符号,这样就可能存在本次安装的包版本有升级。

升级从左向右的第一个不为0的版本

注意:以上说法不一定正确,持保留意见。可能是版本升级

标准版本

Syntax Description 版本示例
New product Start with 1.0.0 1.0.0
Patch release Increment the third digit(位数) 1.0.1
Minor (次要)release Increment the middle digit and reset last digit to zero 1.1.0
Major(重大) release Increment the first digit and reset middle and last digits to zero 2.0.0

Mr.He大约 2 分钟CLINPM
NVM管理Node版本

NVM管理Node版本

安装nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

Mr.He小于 1 分钟CLINodeNVM
代码分割

代码分割

代码分离是webpack最引人注目的特性之一。此特性能够把代码分离到不同的 bundle 中,然后可以按需加载或并行加载这些文件。

常用的方法:

  • 入口起点:使用 entry 配置实现分离
  • 防止重复:使用 Entry dependencies 或者 SplitChunksPlugin 去重和分离 chunk
  • 动态导入:通过模块内联函数调用来分离

Mr.He大约 3 分钟打包工具webpack
height:100%不生效

height:100%不生效

<body>
    <div style="width:100%;height:100%;background-color:blueviolet;">
      width:100%;height:100%;
    </div>
</body>

Mr.He小于 1 分钟CSSheigh
Git常用命令

Git常用命令

创建本地分支

在本地创建分支dev并切换到该分支

git checkout -b dev(本地分支名称) origin/dev(远程分支名称)

Mr.He大约 2 分钟CLIGit