- 博客(35)
- 收藏
- 关注
原创 虚拟列表遇上瀑布流布局
而虚拟列表则是值渲染可视窗口内的dom元素,那么如何才能知道哪些元素在可视窗口里面呢?在列表形式的虚拟列表中,我们只需要计算出可视数据的索引,然后直接截取出目标数据进行渲染即可,但是要知道瀑布流布局是个抽象的二维数组的结构,这时就不能简单的截取数据了,这样也没法实现,所以接下来就是解决计算哪些数据是可视的。
2024-12-01 20:31:51
324
原创 别再抱怨后端一次性传给你 1w 条数据了,几行代码教会你虚拟滚动!
使用背景:前端开发中,当我们需要展示大量数据时,如果我们把所有的元素都渲染出来的话就会造成以下问题:1、大量的数据需要庞大的DOM元素来呈现,这会导致浏览器的渲染时间明显增加,影响了页面的加载和交互性能。2、每个列表项都在内存中占用一定的空间,当数据量庞大时会占用大量的内存,占用的内存过多时可能会导致计算机运行缓慢或出现卡顿甚至是崩溃等问题。3、影响用户体验,一次性加载庞大数据需要较长的时间,这使得用户在等待数据加载完成时可能会感到不耐烦,从而影响了整体的用户体验。
2024-11-17 19:22:49
482
原创 响应拦截器的判断
res.status:用来判断 HTTP 请求的状态,告诉你请求是否成功(如 200 表示成功,500 表示服务器错误)。:是后端业务逻辑中的状态码,通常用来表示具体的操作是否成功或失败。根据不同的业务场景,后端可以自定义不同的code来传递详细的业务结果。
2024-11-10 20:55:00
720
原创 Pinia-状态管理
Store 是用定义的,它的第一个参数要求是一个独一无二的// 你可以任意命名 `defineStore()` 的返回值,但最好使用 store 的名字,同时以 `use` 开头且以 `Store` 结尾。// (比如 `useUserStore`,`useCartStore`,`useProductStore`)// 第一个参数是你的应用中 Store 的唯一 ID。// 其他配置...})这个名字,也被用作id,是必须传入的, Pinia 将用它来连接 store 和 devtools。
2024-11-03 16:05:07
1147
原创 Vue3入门
如果父组件链上多个组件对同一个 key 提供了值,那么离得更近的组件将会“覆盖”链上更远的组件所提供的值。第二个参数是在发生变化时要调用的回调函数。该回调函数会在副作用下一次重新执行前调用,可以用来清除无效的副作用,例如等待中的异步请求。在深层级模式时,如果回调函数由于深层级的变更而被触发,那么新值和旧值将是同一个对象。接受两个参数:第一个参数是要注入的 key,可以是一个字符串或者一个 symbol,第二个参数是要注入的值。当侦听多个来源时,回调函数接受两个数组,分别对应来源数组中的新值和旧值。
2024-10-27 14:25:24
1168
原创 考核题目总结
这个钩子函数获取dom的内容是更新之后的内容生成新的虚拟dom,新的虚拟dom与之前的虚拟dom进行比对,差异之后,就会进行真实dom渲染。闭包会使函数中的变量一直保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。这个钩子函数初始化的不会执行,当组件挂载完毕的时候,并且当数据改变的时候,才会立马执行,这个钩子函数获取dom的内容是更新之前的内容。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。
2024-09-30 19:46:56
818
原创 Vuex的使用
Vuex 是一个 Vue 的 状态管理工具,状态就是数据。大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据 个人信息数actions: {// 一秒后, 给一个数, 去修改 num}, 1000)},
2024-09-22 18:59:52
2301
1
原创 Nodejs
*** 1. 基于 http 模块,创建 Web 服务* 2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方* 3. 其他路径,暂时返回不存在提示* 4. 运行 Web 服务,用浏览器发起请求*/// 1. 基于 http 模块,创建 Web 服务// 2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方})} else {// 3. 其他路径,暂时返回不存在提示。
2024-07-28 17:02:31
615
原创 AJAX基本用法
JavaScript中的Promise是一种处理异步操作的编程模式,它提供了更加优雅的方式来组织和管理异步代码,相较于传统的回调函数,Promise能够避免回调地狱(Callback Hell),使得代码更加清晰和易于维护。在JavaScript中,当多个异步操作依赖于彼此的结果时,如果使用传统的回调函数处理,代码会迅速变得嵌套复杂,难以阅读和维护,这种现象被称为“回调地狱”(Callback Hell)。)后面,多个参数之间用&符号分隔。语法,它基于Promise,提供了更加简洁的异步编程方式。
2024-07-18 10:15:56
1280
原创 JS进阶技巧
原型链:在JavaScript中,每个对象都有一个原型对象(prototype object),当试图访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,JavaScript引擎会继续在其原型对象中查找(也就是 __proto__指向的 prototype 原型对象),这个过程会一直向上追溯,直到找到该属性或方法,或者达到原型链的末端(通常是。指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有。
2024-07-15 17:07:03
1073
原创 JS学习第三周
/ const strEnd = str.replace(/前端/, 'web') 只能替换一个。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。// 用户名可以输入英文字母,数字,可以加下划线,要求 6~16位。// 1. 替换 replace 需求:把前端替换为 web。// 1. 替换 replace 需求:把前端替换为 web。
2024-07-15 17:05:34
709
原创 css移动端开发
二倍图(@2x images)是指其分辨率是标准分辨率图像的两倍的图像。例如,如果标准图像的尺寸是100x100像素,那么二倍图的尺寸则是200x200像素。
2024-05-30 22:27:30
1926
原创 js学习第一周
是一个类数组对象,它代表了传给函数的参数。这个对象仅在函数体内部可用,并且是自动可用的,无需在函数声明或函数表达式中显式声明。当在函数里面调用var a = b = c = d = 9 时,注意这里只有a是局部变量,其他是全局变量,因为只有a接受声明了。在JavaScript中,所有的数字都是以64位浮点数形式存储的,即使它们被声明为整数。数组是特殊的对象,可以包含多个元素(原始值或对象),这些元素可以通过索引来访问。也可以作为一个全局变量来访问,但它的作用主要是用来表示变量未定义的状态。
2024-05-26 17:26:21
344
原创 CSS入门指南
并集选择器可以选择多组标签, 同时为他们定义相同的样式,通常用于集体声明。并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。
2024-05-05 15:36:35
1514
2
原创 HTML入门指南:探索网页开发的起点
HTML 指的是超文本标记语言(Hyper Text Markup Language) ,它是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language)。标记语言是一套标记标签 (markup tag)。网页是图片、链接、文字、声音、视频等元素组成, 其实就是一个html文件(后缀名为html)网页生成制作: 有前端人员书写 HTML 文件, 然后浏览器打开,就能看到了网页.
2024-04-25 18:14:21
861
1
原创 二叉树的不同遍历方式
树结构是一种常见的数据结构,而二叉树是其中一种最基本、最常见的形式之一。在处理二叉树时,遍历是一种重要的操作,它允许我们按照特定的顺序访问树中的所有节点。本文将介绍二叉树的四种常用遍历方式:前序遍历、中序遍历、后序遍历和层序遍历,并分别探讨它们的特点和应用场景。
2024-04-20 23:36:47
604
原创 深入理解回溯算法
回溯算法是一种经典的问题解决方法,通常用于解决搜索和优化问题。它的核心思想是尝试在解空间中搜索所有可能的解,并在找到合适的解或者确定不存在解时回溯到上一步继续搜索。在本文中,我们将探讨回溯算法的原理、应用场景以及实现方式。
2024-04-13 17:09:44
1868
1
原创 单链表的冒泡,选择和快速排序
选择排序的原理是在每一趟遍历时找出所有数据中最小或者最大的那一个值,然后放到开头或者末尾,在链表里面也是同样的道理,在下面的代码当中,遍历了一遍链表之后,我们找出了最大的那个值,然后用头插法插入链表的开头,关键的地方是链表不能查找到上一个节点,所以我们需要用两个指针,一个保留最大值,一个保留最大值的上面一个节点。
2024-04-06 20:24:16
534
1
原创 数据结构----认识树和二叉树
树是一种非线性的数据结构,由节点组成,呈现出类似于自然界中的树的形状。树的顶部节点称为根节点,根节点可以有零个或多个子节点,每个子节点也可以有零个或多个子节点,依此类推。没有子节点的节点称为叶节点。树中的节点可以有任意多个子节点。
2024-03-24 16:22:47
785
1
原创 KMP算法
在这里目标串与文本串匹配失败,观察到目标串D(即匹配失败的位置)的前一位B所对应的最大前缀后缀公共元素长度是2,我们就可以知道D的前两位和目标串起始两位是一样的,所以这个时候就可以直接将指向目标串的指针回退到指向C就可以了。KMP算法的关键就在于这个next数组,前面提到如果出现了像ABCDABD这样的目标串,匹配到后面的D时发现与文本串不相符,我们可以从将指向D的指针回退到C继续开始比对,这样就省去了将指向文本串的指针回退的操作。但是要是遇到了不匹配的地方,指向文本串的指针就得回到一开始的位置。
2024-03-15 17:31:40
654
1
原创 栈与队列c
在计算机科学中,栈(Stack)是一种基本的数据结构,它遵循先进后出(LIFO)的原则。栈常常被用于需要临时存储和检索数据的场景,比如函数调用、表达式求值、以及编译器中的语法分析等。在本文中,我们将深入讨论C语言中栈的实现和相关算法,包括顺序存储、共享栈、链栈等。
2024-03-15 17:25:20
440
原创 C语言的位运算
在位运算里面,两个相同的数异或的结果是 0,一个数和 0 异或的结果是它本身,所以我们把这一组整型全部异或一下,例如这组数据是:1, 2, 3, 4, 5, 1, 2, 3, 4。这道题可以用一个哈希表来存储,每次存储的时候,记录 某个数出现的次数,最后再遍历哈希表,看看哪个数只出现了一次。1.给你一组整型数据,这些数据中,其中有一个数只出现了一次,其他的数都出现了两次,让你来找出一个数。也就是说,那些出现了两次的数异或之后会变成0,那个出现一次的数,和 0 异或之后就等于它本身。
2023-12-10 11:16:22
402
原创 归并排序和选择排序
归并排序是一种高效且稳定的排序算法。通过递归地将数组划分和合并,归并排序在各种应用场景中都有着良好的性能表现。选择排序虽然不如其他高级排序算法在效率上有优势,但它的思路简单直观,实现也相对容易。在小规模数据或者部分有序的情况下,选择排序仍然是一个可行的选择。
2023-11-19 12:03:09
90
1
原创 C语言链表的原理及使用方法
链表的优点和缺点优点:链表的大小可以根据需要动态增加或减少,而数组的大小是固定的。在链表中插入和删除节点相对容易和高效,只需要调整节点指针的指向,而不需要移动大量元素。链表不需要预先分配内存空间,它可以根据需要动态分配内存。在链表中插入或删除元素时,不需要像数组那样移动其他元素。缺点:链表中的元素并不是在内存中相邻存储的,因此要访问特定位置的元素,需要从头节点开始遍历。每个节点都需要额外的空间来存储指针信息,因此相对于数组来说,链表会有更多的内存开销。
2023-11-05 16:38:20
245
原创 高精度加法代码
int main()int i, j;i < l1;i++, j--)i < l2;i++, j--)len = l1;elselen = l2;for (i = 0;i < len;i++)for (i = 0;i < len;i++)c[i] %= 10;i = 2999;i--;for (j = i;j >= 0;j--)return 0;
2023-10-29 18:35:59
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人