自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一个好用的文档部署工具-VitePress

尤大大又出手了,这次他带来了VitePress1.0,一个基于Vite和Vue前端框架构建的静态站点生成器(SSG)。它主要用于快速搭建静态网页项目,尤其适合开发文档较多的场景,同时也支持自定义主题开发官网、博客等项目。

2024-03-25 16:56:06 273

原创 微信图片-透明背景被填充为白色

在微信中,图片通常会自动填充背景颜色,导致原本透明的部分不显示为透明,而是被替换为白色或其他默认颜色,导致图片在传输过程中,透明背景被破坏。

2024-03-19 17:38:06 462

原创 发现开源宝藏——stepui

stepui是一款基于vue3+antd的后台前端项目。项目地址gitee点这里github点这里。

2024-03-15 11:33:44 635

原创 回溯法概念

回溯法(Backtracking)是一种深度优先搜索算,用于在解决问题时尝试所有可能的解,并通过逐步构建解决方案来找到最优解。回溯法通常用于解决组合问题,如排列、组合、子集等。

2024-03-15 07:53:00 336

原创 动态规划概念

动态规划(Dynamic Programming,DP)是一种优化问题求解方法,通常用于解决具有重叠子问题和最优子结构性质的问题。它的基本思想是将原问题分解成更小的子问题,通过求解和保存这些子问题的解,避免重复计算,从而提高算法的效率。

2024-03-14 10:43:42 457

原创 贪心算法概念

一种在问题求解过程中总是做出当前看来最优选择的策略。这个"最优选择"是在某个特定意义上的局部最优解,而不是全局最优解。贪心算法并非对所有问题都能得到整体最优解,其关键在于贪心策略的选择。所选取的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。

2024-03-14 10:24:22 823

原创 最长递增子序列

对于数列中的每一个元素,我们记录下以该元素结尾的最长递增子序列的长度。然后,对于每一个新的元素,我们检查在它之前的元素,找到一个最长的递增子序列,该序列可以通过添加这个新元素来延长。最长递增子序列(Longest Increasing Subsequence,简称LIS)是在一个数列中找到一个最长的子序列(不一定连续),使得这个子序列中的所有元素都是按照严格递增的顺序排列的。结尾的最长递增子序列的长度。对于数组中的每个元素,它都会查找在它之前的所有元素,找到可以形成递增子序列的最长长度,并更新。

2024-03-13 22:40:38 684

原创 vue动态路由

Vue的动态路由是一种非常灵活的路由管理方式,它允许开发者根据不同的情况动态地添加或修改路由。

2024-03-13 21:54:02 367

原创 React架构介绍-三个部件

React16及以后版本的架构主要由三个关键部分组成:调度器(Scheduler)、协调器(Reconciler)和渲染器(Renderer)。这三个组件共同协作,实现了React的高效和响应式的更新。调度器负责调度任务的优先级,协调器负责找出变化的组件,渲染器负责将变化的组件渲染到视图中,从而实现了整个更新流程的高效和稳定。

2024-03-07 08:16:50 429

原创 RBAC权限模型

RBAC(Role-Based Access Control),即基于角色的访问控制,是一种广泛应用的权限管理模型。它的核心思想是将权限与角色相关联,不同的角色有不同的权限,用户通过被分配为不同的角色来获取相应的权限。

2024-03-06 23:55:53 432

原创 js中的 == 比较规则

在 js 中,== 是一种宽松相等运算符,它会在比较两个操作数时,尝试进行类型转换,以便比较它们的值如果类型不同是,两边的值都尽量转成number。

2023-12-29 22:36:29 429

原创 几种设计模式介绍

前言设计模式是一种用于解决软件开发中常见问题的通用解决方案,它可以提高代码的可读性、可维护性和可复用性。前端开发中也有很多应用设计模式的场景,比如处理异步操作、优化性能、封装复杂逻辑等。

2023-12-29 22:19:02 622

原创 react 为什么要重构架构

重构 React 的架构的主要原因是为了提高 UI 的渲染性能和用户体验,解决 CPU 和 I/O 的瓶颈,实现异步、可中断、可恢复、可优先级的更新流程,以及支持一些新的特性,如 Time Slice(时间分片)、Suspense(悬停)、Lazy Loading(懒加载)、Concurrent Mode(并发模式),所以react15递归、同步的更新执行是不支持的,重构就必须来了。

2023-12-28 16:27:52 1152 2

原创 react 代数效应 和 vue vm思想

前言React 的代数效应和 Vue 的 VM 思想是两种不同的编程模型,它们都试图解决 UI 开发中的一些挑战,如副作用管理、状态同步、组件抽象等。

2023-12-28 16:02:08 388

原创 vue中的事件绑定的过程

Vue中事件的绑定分为两种情况:原生DOM事件和组件事件。

2023-12-27 16:50:53 415

原创 vue&react中的副作用

前言副作用(side effect)是指在函数或组件中,除了返回值或渲染结果之外,对外部产生的影响。即一个动作引起的其他关联的动作,例如,修改全局变量、发送网络请求、操作DOM、打印日志等,都是副作用。vue和react是两种流行的前端框架,它们都使用虚拟DOM来提高渲染性能,但是它们对副作用的处理方式有所不同。vue的思想是响应式的:它通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式地更新对应的虚拟DOM。它的数据流是发散的,即从变动的位置,发散到子父组件的任何相关联的地方;

2023-12-27 10:25:38 989

原创 手写一个vuex?

vuex是一种专为Vue.js应用程序开发的状态管理模式,挂载在全局中,具有响应式特性。然后在app.js文件中引入使用。

2023-12-26 22:36:51 855

原创 vue2 diff算法:双端指针法

Vue2 双端指针法是一种 diff 算法,用来比较两棵虚拟 DOM 树的差异,并根据差异更新视图。

2023-12-26 22:17:08 584

原创 vue中的watcher

Vue 中的 watcher 是一种特殊的对象,它可以订阅响应式数据的变化,并在变化时执行相应的回调函数。Vue 中有三种类型的 watcher。

2023-12-22 09:05:28 517

原创 JavaScript 作用域

JavaScript 作用域是指在代码中定义变量的区域,它决定了变量的可见性和生命周期。全局作用域是指在代码的任何地方都能访问到的变量,它们被定义在 window 对象上。全局变量在页面加载时创建,页面关闭时销毁。局部作用域是指在函数内部定义的变量,它们只能在函数内部使用,函数外部无法访问。局部变量在函数执行时创建,函数结束时销毁ES6 引入了两种新的声明方式:let 和 const,它们与 var 相比,最大的区别就是它们具有块级作用域。块级作用域是指变量在最近的 {} 代码块内有效。

2023-12-21 16:45:59 396

原创 树摇是什么

树摇(Tree Shaking)是一种用于优化 JavaScript 或 TypeScript 代码的技术,它的主要目标是删除未使用的代码(即未引用的模块、变量、函数等),以减小最终生成的代码的体积。

2023-12-12 15:56:56 455

原创 6种常见的JS模块打包器

JS模块打包器是一种工具,它可以将多个JS文件或模块合并成一个或多个输出文件,以便在浏览器或其他环境中使用。

2023-12-08 17:31:09 1523

原创 编译器:swc 究竟比 babel 快在哪里?

swc 与 babel 都是 JavaScript 编译器,它们的主要功能是将 ES2015+ 以及 TypeScript, Flow, JSX 等语法转换为浏览器或环境中的向后兼容的 JavaScript 代码。swc 相比于 babel 的优势主要是编译速度和执行速度方面,根据官方测试,swc 有至少 10 倍以上的性能优势。但是 babel 的优势主要是插件系统和生态方面,babel 有更多的插件和框架支持,可以处理更复杂的 JavaScript 项目。

2023-12-08 15:52:44 1235

原创 vue-template-compiler 的原理

Vue 模板是一种用 HTML 语法来描述 Vue 组件的视图的方式,例如:data() {return {" , };} , };} , };} , };} , };} , };} , };data() {

2023-12-05 17:32:00 1388

原创 vue-template-loader 是如何工作的?

vue-template-loader 的工作原理是,它会将 HTML 文件中的内容转换为一个 Vue 组件的渲染函数,并导出它。vue-template-loader 可以解决这些问题,它可以让你直接使用 HTML 文件来编写 Vue 组件的模板部分,而不需要在 .vue 文件中引用它们。如果你使用 vue-loader 来处理 .vue 文件,你可能会发现,你必须在 .vue 文件中的 template 标签内编写模板,或者使用 src 属性来引用外部的 HTML 文件。

2023-12-05 11:25:29 1498

原创 vue-loader是如何工作的?

单文件组件是一种将模板、脚本和样式封装在一个 .vue 文件中的方式例如:data() {return {" , };} , };} , };} , };} , };} , };} , };data() {

2023-12-05 10:39:35 1156

原创 原生微信小程序的原理

微信小程序是一种在微信内部运行的轻量级应用,它可以让用户在无需下载安装的情况下,快速地获取和使用各种服务。微信小程序的开发和普通的网页开发有很多相似之处,但也有一些独特的特点和原理。

2023-12-04 17:16:38 929

原创 浏览器缓存:Cookie、LocalStorage、SessionStorage的区别与应用

浏览器缓存是一种在本地保存资源副本,以便在下次请求时快速获取的技术。浏览器缓存可以提高网站的性能,减少服务器的负载,节省流量和时间。Cookie和。

2023-12-02 18:40:03 984

原创 当浏览器窗口被遮挡或隐藏,代码是否正常运行

你是否有过这样的经历,当你在浏览器中打开一个网页,然后切换到其他应用或者最小化浏览器,再回来时发现网页上的动画停止了,或者某些功能失效了?这是因为浏览器为了节省资源和提高性能,会对后台的标签页进行一些优化,导致js代码的执行受到影响。那么,当浏览器窗口被遮挡或隐藏时,js代码是否正常运行呢?哪些Api会被影响,哪些不会呢?本文将为你解答这些问题。

2023-12-02 18:27:47 1043

原创 前端浏览器的缓存策略

浏览器缓存是一种在本地保存资源副本,以便在下次请求时快速获取的技术。浏览器缓存可以提高网站的性能,减少服务器的负载,节省流量和时间。过期机制和验证机制。过期机制:是指浏览器根据资源的过期时间,判断是否可以直接使用缓存中的副本,而无需向服务器发起请求。过期时间可以通过以下两种方式设置::这是一个HTTP响应头,用于指定资源的最大有效期。例如,表示资源在3600秒内有效,之后需要重新请求。Expires:这也是一个HTTP响应头,用于指定资源的具体过期时间。例如,

2023-12-02 18:12:26 492

原创 Promise介绍

Promise是一种用于处理异步操作的JavaScript对象,它可以将生产代码和消费代码连接起来,让异步方法像同步方法一样返回值。异步操作是指在执行过程中可能会遇到延迟或等待的操作,例如网络请求、定时器、文件读取等。传统的JavaScript代码中,通常使用回调函数来处理异步操作的结果,但这样会导致代码的可读性和可维护性降低,以及出现回调地狱的问题。Promisepending:初始状态,既没有完成也没有失败fulfilled:操作成功完成rejected:操作失败Promise。

2023-12-01 17:02:07 415

原创 微前端框架 qiankun

qiankun是一个基于single-spa的微前端实现库,帮助你构建一个生产可用的微前端架构系统。qiankun支持多种技术栈的微应用接入,提供了简单、解耦、技术栈无关、独立开发、独立运行、增量升级、样式隔离、资源预加载等特性,以及umi插件一键切换。微前端是一种多个团队通过独立发布功能的方式来共同构建现代化web应用的技术手段及方法策略。技术栈无关:主框架不限制接入应用的技术栈,微应用具备完全自主权独立开发、独立部署:微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新。

2023-12-01 16:52:49 1082

原创 迭代器与生成器

是一个布尔值,表示是否已经遍历完序列。迭代器是一种对象,它可以按照一定的顺序遍历一个序列,并且可以在每次遍历时返回序列中的一个值。生成器是一种特殊的函数,它可以返回一个迭代器,通过使用。关键字来暂停执行,并返回一个值。在js中,迭代器必须实现一个名为。的特殊方法,该方法返回一个具有。方法的对象,该方法返回一个包含。语法来定义,函数中可以使用。是序列中的下一个值,

2023-12-01 16:29:39 871

原创 一文搞懂微前端

微前端是一种前沿的 Web 应用架构模式,它可以帮助开发者将一个庞大的前端应用拆分成多个小型的前端应用,实现技术栈的自由选择,业务模块的独立开发,应用部署的快速迭代,以及应用架构的增量演进。微前端也有一些挑战和限制,需要开发者根据自己的实际情况,选择合适的方案和框架,以及解决应用间的路由,隔离,通信等问题。

2023-12-01 14:05:39 879

原创 浏览器安全攻击与防御

浏览器是我们访问互联网的主要工具,也是我们接触信息的主要渠道。但是,浏览器也可能成为攻击者利用的突破口,通过各种手段,窃取或篡改我们的数据,甚至控制我们的设备.本文将向大家介绍一些常见的浏览器安全的攻击方式和防御机制。

2023-11-30 14:55:20 1362

原创 JavaScript 的 Proxy 介绍

Proxy 是一个用于创建对象代理的对象,它可以拦截和自定义对象的基本操作,比如属性查找、赋值、枚举、函数调用等。Proxy 的用途有很多,比如日志记录、验证、格式化、内存优化等。Proxy 是一个强大的特性,它可以让我们在 JavaScript 中创建和使用对象代理,实现数据的安全传输、动态修改、懒加载等功能。Proxy 提供了一些简单易用的捕捉器,让我们可以方便地拦截和自定义对象的行为。Proxy 还可以和 Reflect 对象结合使用,实现对象的默认行为。

2023-11-30 11:31:13 336

原创 Node.js 的 os 模块介绍

os 模块是 Node.js 内置的一个模块,它提供了一些与操作系统相关的实用方法和属性,比如获取系统信息、环境变量、用户信息等。os 模块是 Node.js 的一个重要的模块,它可以让我们在 Node.js 中获取和操作操作系统相关的信息和功能,比如获取系统信息、环境变量、用户信息等。os 模块提供了一些简单易用的方法和属性,让我们可以方便地访问操作系统的特性。

2023-11-29 22:38:03 1016

原创 Node.js 的 https 模块介绍

https 模块是 Node.js 内置的一个模块,它用于创建 HTTPS 服务器或客户端,支持 HTTPS请求和响应的处理和操作。HTTPS 是 HTTP 协议在 TLS/SSL 协议上的封装,它可以提供数据的加密、身份验证和完整性保护。https 模块是 Node.js 的一个重要的模块,它可以让我们在 Node.js 中创建和使用 HTTPS 服务,实现数据的安全传输,提高用户的信任度。

2023-11-29 22:25:54 1226

原创 浏览器垃圾回收机制的几种回收方法

浏览器垃圾回收机制是指浏览器对内存中不再使用的对象进行自动回收和释放的过程。浏览器垃圾回收机制的目的是为了防止内存泄漏,提高程序的性能和稳定性。浏览器垃圾回收机制是一个重要的话题,它涉及到浏览器的性能和稳定性,以及JavaScript的内存管理。浏览器垃圾回收机制的原理是基于可达性的概念,它有多种回收方法,比如标记清除、引用计数、分代收集、增量收集、闲时收集等。我们可以根据不同的场景和需求,选择合适的回收方法,优化我们的程序,提高用户体验。

2023-11-29 18:49:49 371

原创 node.js 的 fs 模块的介绍

fs 模块是 Node.js 内置的一个模块,它用于文件系统操作,包括文件读写、目录创建等。fs 模块提供了同步和异步两种方式的方法,异步方法通常以 Async 结尾,比如 fs.readFileAsync(),它们接受一个回调函数作为参数,用于处理异步操作的结果。同步方法通常没有 Async 后缀,比如 fs.readFileSync(),它们会阻塞程序的执行,直到操作完成,然后返回结果。一般来说,异步方法的性能更好,但是同步方法的逻辑更简单。

2023-11-29 16:07:37 595

空空如也

空空如也

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

TA关注的人

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