零碎知识16(常用工具链接)

72 阅读4分钟

表格

  • vxe-table

vxetable.cn/plugins/#/a…

vxetable.cn/other4/#/ta…

用户指引

  • Intro.js/Driver.js

github.com/introshu/in…

css学习

github上的icss项目

样式效果库

css技巧库

qishaoxuan.github.io/css_tricks/…

js常用方法

monsterwx.gitee.io/blog/docs/a…

js练习

github.com/sl1673495/l…

js数字范围

(2^53 - 1)= 9,007,199,254,740,991 //16位

(-(2^53 - 1))

客服聊天工具

www.eyy250.com/

移动端网页开发调试工具//////待实践

import Devtools from 'vue-vconsole-devtools' 1.0.9 //可结合vconsole 3.15.1使用,有vue项目栏
import eruda from 'eruda' //可选择页面元素 3.0.1

身份认证小知识

  • 前后端分离推荐使用 JWT(JSON Web Token)

  • Session 认证的局限性:

    • Session 认证机制需要配合 Cookie 才能实现。由于 Cookie 默认不支持跨域访问,所以,当涉及到前端跨域请求后端接口的时候,需要做很多额外的配置,才能实现跨域 Session 认证。
    • 当前端请求后端接口不存在跨域问题的时候,推荐使用 Session 身份认证机制。
    • 当前端需要跨域请求后端接口的时候,不推荐使用 Session 身份认证机制,推荐使用 JWT 认证机制

ts争议

  • 替代品:js-doc

转json时会被丢弃的值

MDN专栏

  • undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。函数、undefined 被单独转换时,会返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined).
JSON.stringify({name:undefined})
'{}'
JSON.stringify({name:12})
'{"name":12}'

拦截并修改请求响应

原文章

  • 拦截列表下面的小黑窗,输入 bpafter url (www.abc.com/abc 这种形式)即可拦截该请求
  • 可以修改响应的返回值,然后点绿色按钮,该请求就被修改并返回接受到 image.png
  • 小黑窗里再次输入 bpafter 并回车,即取消所有响应拦截

快速从文件夹处打开cmd

  • 地址栏,空格前加cmd回车即可
    image.png

Alfred/utools工作流(待考究)

搜索关键字高亮

  • vue项目里拉出来列表,通过输入框输入关键字,匹配筛选的方案
-----template--------
      <el-input size="mini"
                placeholder="请输入关键字"
                v-model="searchText"
                @input="searchChange"
                class="search">
                
       <div :class="item"
            v-for="(item,index) in showList"
            :key="index"
            @click="selItem(item)">
         <span class="name"
               v-html="light(item.name)"></span>
       </div>
----methods-------
    light(val) {
      if (!this.searchText) {
        return val
      }
      let reg = new RegExp(this.searchText, 'i')
      let matchList = val.match(reg)
      var keyWord = `<span style="color:red;">${matchList[0]}</span>`
      return val.replace(reg, keyWord)
    },

emoji统计字数出错

  • emoji是utf-16,注意split并不能把emoji拆出来

image.png

pre标签

HTML <pre>  元素表示预定义格式文本。在该元素中的文本通常按照原文件中的编排,以等宽字体的形式展现出来,文本中的空白符(比如空格和换行符)都会显示出来。

Unicode和utf-8的关系

摘自 zhuanlan.zhihu.com/p/427488961

  • Unicode是字符集,制定了每个字符的二进制,但是符号具体如何存储它并没有规定
  • Unicode 字符集的编码范围是 0x0000 - 0x10FFFF,因此需要 1 到 3 个字节来表示
  • UTF-8、UTF-16、UTF-32 中的 "UTF" 是 "Unicode Transformation Format" 的缩写,意思是"Unicode 转换格式",后面的数 字表明至少使用多少个比特位来存储字符, 比如:UTF-8 最少需要8个比特位也就是一个字节来存储,对应的, UTF-16 和 UTF-32 分别需要最少 2 个字节 和 4 个字节来存储
  • utf-8 就是对unicode进行编码转换,实现可变长1~4字节存储

UTF-8 的编码规则:

  1. 对于单字节的符号,字节的第一位设为 0,后面 7 位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的, 所以 UTF-8 能兼容 ASCII 编码,这也是互联网普遍采用 UTF-8 的原因之一
  2. 对于 n 字节的符号( n > 1),第一个字节的前 n 位都设为 1,第 n + 1 位设为 0,后面字节的前两位一律设为 10 。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码 image.png
  • UTF-32 是固定长度的编码,始终占用 4 个字节,足以容纳所有的 Unicode 字符,所以直接存储 Unicode 码即可,不需要任何编码转换。虽然浪费了空间,但提高了效率。//用的不多

策略模式

摘自:juejin.cn/post/727904…

先来看下策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

简单来说就是有多种选择,然后一般只会选择一种。从代码的角度来说就是,定义一系列的ifelseif,然后只会命中其中一个。

const strategies = {
    "high": function (workHours) {
        return workHours * 25
    },
    "middle": function (workHours) {
        return workHours * 20
    },
    "low": function (workHours) {
        return workHours * 15
    },
}

const calculateSalary = function (workerLevel, workHours) {
    return strategies[workerLevel](workHours)
}
console.log(calculateSalary('high', 10)) // 250
console.log(calculateSalary('middle', 10)) // 200

vscode写51/32程序

年终总结h5

www.epub360.com/portfolio/s…

zhuanlan.zhihu.com/p/597058488…