文章列表

3.3k 3 分钟

# 关于 Vapor Mode 现阶段进度的理解总结 -- 第一章 前言:本文在介绍 vapor mode 之前,第一章会先介绍明确最基本的三元论,是什么?为什么?怎么做? 未来几章会逐步介绍 “怎么做” 阶段,以及各个大佬的进度,待解决的问题,同时最后思考,我们能做些什么参与到相关开源项目中。 # Vapor Mode 是什么 熟悉 vue 的都知道,vue 的渲染原理借助了一个核心概念 -- 虚拟 dom,有了虚拟 dom 我们在更新节点时能够实现对 diff 节点的收集和相关依赖的收集,以便于下一次的渲染速度能够得到提升。 于此同时虚拟 dom 本身并不是...
3.2k 3 分钟

# 使用 UseEffect 的错误记录 背景:在 react 中对 monaco-editor 进行初始化,但是会发现有如下两个问题 monaco-editor 创建的实例对象,被赋值了多次 monaco-editor 对象被多次挂载销毁,最终要么是 dom 节点上压根就没有 monaco-editor, 要么是有 monaco-editor 相关信息,但是却没有编辑器 # 造成上述现象的 Bad Example import { FC, useEffect, useRef, useState } from...
3.6k 3 分钟

# vue3 Props 源码部分解析 # 1、props 定义 export declare type Prop<T, D = T> = PropOptions<T, D> | PropType<T>;Prop<T, D = T> 这里的意思是指: T 是入参类型,D 是默认值类型,如果不指定默认值的话,就用 T 的类型进行推断 # 2.PropOptions 的定义 PropOptions<T, D> 这里的入参意思也是一样的,区别在于 PropOptions...
415 1 分钟

# 小小 vite,坑倒不少 首先先说遇到的问题 1.vite 对静态资源的打包方式是什么样 2.vite 图片打包,是不是非得 base64 转码后才能看见 3.vite 为什么不支持 require 写法 # 打包方式 https://vitejs.bootcss.com/guide/assets.html#importing-asset-as-url 先上链接 我们可以知道,确实,图片资源在 vite 中,会被处理为散列名文件名,图片也并不是只有在 base64 下才会被看见 -- 因为都会被处理为散列文件名然后被展示而已,而被 base64...
1.7k 2 分钟

# Fetch 和 ajax 以及 axios 的辨析

前言:闲来无事看掘金,发现自己对于这些异步经常使用的方法经常是 “会使用,知其然而不知其所以然”,故而查阅资料整合一下相关知识点

926 1 分钟

# 前言 春招八股基本上都靠背的,许多面试官提到我的一个通病就是项目经验少 + 知识点深度不够。 故本文主要是针对自我的知识薄弱点进行总结。 # 1. 前端常见的的性能优化有哪些? 遇到问题首先要知道问题是什么我们才能做好问题的解决,同样,性能优化也是如此,我们要知道是哪些层面的执行速度效率过低,才导致我们的页面看起来特别 "慢"。 # 性能分析方法: 查看 NetWork 面板中的 WaterFall,看其宽度和长度是否过大,进一步分析如下指标: 查看 performance 中的 Timings 中的 LCP/FCP...
1.1k 1 分钟

# 前言 我们常常都知道从 url 到页面渲染会包括如下流程: dns 域名解析,得到对应的 ip 地址 根据这个 ip,找到对应的服务器连接(三次握手) 建立 tcp 连接后发起 http 请求 服务器响应 http 请求,浏览器得到 html 代码 浏览器解析 html 代码,并请求 html 中的资源(如 js,css,图片等) 服务器渲染页面 服务器关闭 tcp 连接(四次挥手)。 虽然这些步骤是大体程序步骤,但这样会显得知其然而不知其所有然。 接下来我将会对上述步骤阐述更多个人的深度理解。 # 一、dns 如何查找对应的 ip 地址的? 首先会查找自身缓存中是否存在该 dns...
523 1 分钟

函数柯里化主要是实现如下意义: add(1)(2)(3) = 1+2+3 ; 方法如下: // 柯里化的实现function curry(){ var fn = arguments[0]; var arr = Array.prototype.slice.call(arguments,1); return function _format(){ // 本处的 arguments 和上一层函数的 arguments 不一样 var args = Array.prototype.slice.call(arguments); args =...
381 1 分钟

# 数组矩阵相关算法

1. 动态规划来实现小偷问题

核心点就是 dpSum = dp[i-2]+num[i]+dp[i-1] ;

2. 层次遍历对左右树进行交换

简单,层次遍历队列进行遍历后进行 swap

6.9k 6 分钟

# 排序

几个口诀:

1. 考研复习痛苦啊,情绪不稳定(不稳定算法),** 快(快速)些(希尔)选(简单选择)一堆(堆)** 好友来聊天吧。

2. 时间复杂度计算:

  • 快(快速)些(希尔)以 nlogn 的速度归 (归并) 队(堆)
  • 基数排序:O (d (n+rd))
  • 快速排序最坏的情况下(有序):O(n²)
  • 除此之外的其他算法都是 O (n²)

3. 空间复杂度的计算:

  • 快:O(log2n)
  • 归:O (n)
  • 基数:O (rd)
  • 其他均为 O (1)