自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Element Plus 源码学习之 button(一)组件中的hooks

这是setup中引用的所有模块,现在一一开始拆解import { computed, inject, Text, ref, useSlots } from 'vue'import { TinyColor } from '@ctrl/tinycolor'import { ElIcon } from '@element-plus/components/icon'import { useDisabled, useFormItem, useGlobalConfig, useNamespa

2022-03-02 17:16:33 1632

原创 缓行函数收集

// t - process 已消耗时间 // b - 起始值 // c - 数值差的绝对值 // d - duration 总需求时间 easeOutExpo = (t, b, c, d) => // -Math.pow(2, -10 * t / d) + 1 指数函数 (0-1) c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b easeOutBounce = (t, b, c, d) =&gt...

2022-02-28 16:46:28 171

原创 (0, fn)改变this指向

今天读elementui源码时发现一个有意思的写法 (0, _dom.on)(el, 'mousedown', function (e) { if (e.button !== 0) return; startTime = Date.now(); (0, _dom.once)(document, 'mouseup', clear); clearInterval(interval); interval = setInterval(handle

2021-12-02 11:43:32 642

原创 vue自定义指令之v-clickoutside

根据elementui的自定义指令写一个简化版,详细注释// 缓存所有绑定指令的elconst nodeList = [];// 标识符-任意不重复字符均可-使用的elementui的const ctx = '@@clickoutsideContext';// mousedown 对应的 eventlet startClick;// idlet seed = 0;// 绑定startClick的 eventdocument.addEventListener(document, 'm

2021-10-18 17:22:35 1548

转载 算法-无重复字符的最长子串

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。var lengthOfLongestSubstring = function(s) { // 哈希集合,记录每个字符是否出现过 const occ = new Set(); // 总长度 const n = s.length; // 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动 let rk = -1, ans = 0; for (let i = ...

2021-09-26 09:01:16 149

转载 算法-两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。var twoSum = function (nums, target) { // map用于存需要的下标 let hash = {}; for (let i = 0; i < nums.length; i++) { ...

2021-09-23 08:51:58 59

原创 Axios 从0开始的源码学习(一)

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。写这篇文章只是想记录下自己的学习历程,希望能帮助到大家。axios版本:^0.21.1目录结构:我们使用axios一般是: import axios from 'axios';可以看出index.js就是我们的入口文件;入口:module.exports=require('./lib/axios');需要用到的组件:后续按顺序解释,这里暂时不做说明var utils..

2021-09-04 16:08:53 181

原创 串联所有单词的子项

给定一个字符串 s 和一些长度相同的单词 words。 找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置注意子串要与 words 中的单词完全匹配,中间不能有其他字符,不需要考虑 words 中单词串联的顺序。思路: 1. 用哈希表记录 words 中有哪些单词,以及出现的次数(检查每个s 子串时,哈希表都是新的)。 2. 遍历一个s的子串,将其截成一个个单词的长度,去哈希表中查询。 3. 如果出现在子串中的单词能在哈希表中找到,就将...

2021-09-02 11:25:50 51

原创 原型和原型链

prototype每个函数都有一个prototype属性函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型 如 function A(){}; let a = new A(); 那么 a.__proto__(创建实例的原型) === A.prototype 每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原...

2021-09-01 20:05:27 55

原创 vite遇到的坑

1. process is not defined项目中引入了path,,想用它的resolve方法,但是报process is not defined的错误发现是因为path方法用到了platform属性,但是在vite2中process为undefined那也就是说,所有用到process属性的库都会有这个问题在网上找到了答案,参考链接在最下面export default defineConfig({ // ... define: { 'process.env'

2021-08-31 16:07:07 1998 1

原创 连续重复请求的解决方案

有一个input输入发请求筛选员工的功能由于前一次的请求耗时远大于后一次请求,导致页面渲染内容错误,本应该渲染最后一次的结果却被第一次请求的结果覆盖解决方案: 原理:相同请求在没有返回值之前再次调用时进行拦截...

2021-08-27 11:43:22 1554

原创 ElementUI全局配置message的弹窗时间

由于默认的message的配置是通过options传进去的,但是并没有开放全局配置给用户,看message的源码发现默认是3s。export default { data() { return { visible: false, message: '', // 在构造器中配置的默认时长 duration: 3000, type: 'info', iconClass: '',

2021-08-10 10:27:35 4060

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除