- 博客(34)
- 收藏
- 关注
原创 为什么vue中v-for要加key?
在Vue中,v-for指令用于循环遍历数组或对象,并为每个元素或属性生成相应的DOM元素或组件实例。为了实现这个复用机制,Vue会根据每个元素的key来跟踪它们的身份,从而能够高效地更新虚拟DOM。当数组中的元素发生变化时,Vue会尽量复用已有的组件,而不是销毁再创建,从而保持组件的状态。需要注意的是,key的值必须是唯一且稳定的,通常使用元素的唯一标识作为key,如ID或唯一的属性值。通过给每个循环渲染的元素分配一个唯一的key,Vue可以追踪每个元素的身份,从而能够更加高效地更新DOM,并且提高性能。
2024-08-30 14:32:09
40
原创 promise:看这一篇就够了!
前言前言如果一个函数的执行结果需要另一个函数的执行结果,而这一个函数的执行结果还需要另一个函数的执行结果这种情况一直嵌套下去该如何处理?举个实际的例子:我们需要从一个api获取用户信息,然后基于用户id从另一个api获取用户的订单列表,最后根据订单中的商品id获取商品详情。ps:每个步骤都是异步的,并且后一步骤依赖于前一步骤的结果。
2024-07-19 17:20:17
915
转载 详解webpack、vite、vue-cli、create-vue
脚手架:创建项目,选择性安装需要的插件,指定统一的风格,生成demo。打包代码:代码写好之后,为了更好的使用,需要打包处理一下。构建项目:建立项目的运行环境,需要手动安装插件。
2024-06-30 04:15:20
59
原创 JavaScript 进阶04
与普通函数完全不同,也不受调用方式的影响,事实上箭头函数中并不存在。2.每次事件触发的时候都要先判断是否有定时器,如果有先清除以前的定时器。2.每次事件触发的时候都要先判断是否有定时器,如果有则不开启新的定时器。// 该箭头函数中的 this 与 sleep 中的 this 一致。// 该箭头函数中的 this 为函数声明环境中 this 一致。// 该箭头函数中的 this 为函数声明环境中 this 一致。// try 代码段中执行有错误时,会执行 catch 代码段。
2024-02-29 11:22:41
343
原创 JavaScript 进阶03
基于原型对象的继承使得不同构造函数的原型对象关联在一起,并且这种关联的关系是一种链状的结构,我们将原型对象的链状结构关系称为原型链。但是这样就会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构造函数了。当访问对象的属性或方法时,先在当前实例对象是查找,然后再去原型对象查找,并且原型对象被所有实例共享。中定义与原型对象中相同名称的方法,这时实例对象调用则是构造函中的方法。③ 如果还没有就查找原型对象的原型(Object的原型对象)
2024-02-28 19:32:56
811
原创 JavaScript 进阶02
检测数组中的元素是否满足指定条件 如果数组中有元素满足条件返回 true,否则返回 false。查找元素, 返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。检测数组所有元素是否都符合指定条件,如果所有元素都通过检测返回 true,否则返回 false。通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员。静态成员指的是添加到构造函数本身的属性和方法,静态成员方法中的。// 构造函数内部的 this 就是实例对象。是内置的构造函数,用于创建普通对象。
2024-02-25 00:52:55
625
原创 JavaScript 进阶01
闭包是一种比较特殊的函数,使用闭包能够访问函数作用域中的变量。变量提升允许在变量声明之前被访问,会将所有var声明的变量提升至当前作用域的最前面。在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。文件的【最外层】就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。箭头函数不会创建自己的this,它只会从自己的作用域链的上一层沿用this。包裹的代码称为代码块,代码块内部声明的变量外部将【有可能】无法被访问。// 以前this的指向: 谁调用的这个函数,this 就指向谁。
2024-02-24 18:16:26
614
原创 Web APIs - 06
/ const strEnd = str.replace(/前端/, 'web') 只能替换一个。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。[ ]表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。// 用户名可以输入英文字母,数字,可以加下划线,要求 6~16位。// 1. 替换 replace 需求:把前端替换为 web。// 1. 替换 replace 需求:把前端替换为 web。
2024-02-18 19:36:45
903
原创 Web APIs -05
js的异步是通过回调函数实现的分为三类:1.普通事件:click等,2.资源加载:load,error,3.定时器。history 是对象,主要管理历史记录, 该对象与浏览器地址栏的操作相对应,如前进、后退等。**特性:**以键值对的形式存储,并且存储的是字符串, 省略了window 无法直接存取对象。// 1. 存储/修改 localStorage.setItem(key, value)map 也称为映射。**问题:**因为本地存储里面取出来的是字符串,不是对象,无法直接使用。
2024-02-16 17:53:05
1173
原创 Web APIs - 03
我们的最终目的是保证只有点击 button 子元素才去执行事件的回调函数,如何判断用户点击是哪一个子元素呢?事件委托是利用事件流的特征解决一些现实开发需求的知识技巧,主要的作用是提升程序效率(减少注册次数)。阻止冒泡是指阻断事件的流动,保证事件只在当前元素被执行,而不再去影响到其对应的祖先元素。// 假设上述的 10000 个 buttom 元素共同的祖先元素是 table。// 假设上述的 10000 个 buttom 元素共同的祖先元素是 table。
2024-01-03 20:38:05
815
原创 Web APIs - 01
标准属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如: disabled、checked、selected自定义属性:在html5中推出来了专门的data-自定义属性在标签上一律以data-开头在DOM对象上一律以dataset(集合)对象方式获取。
2023-12-28 22:35:10
891
原创 Web APIs - 02
的第2个参数是函数,这个函数会在事件被触发时立即被调用,在这个函数中可以编写任意逻辑的代码,如改变 DOM 文本颜色、文本内容等。译成中文是【点击】的意思,它的含义是监听(等着)用户鼠标的单击操作,除了【单击】还有【双击】是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和【事件回调】。任意事件类型被触发时与事件相关的信息会被以对象的形式记录下来,我们称这个对象为事件对象。事件回调函数的【第1个参数】即所谓的事件对象,通常习惯性的将这个对数命名为。
2023-12-28 22:32:24
751
1
原创 JavaScript 基础 - 05
ps:简单数据类型放进栈里面(number,复杂数据类型的地址),所以要查找对象,就要先到栈里面找到对象的地址,然后在堆里面的地址找到数据。是 JavaScript 中内置的对象,称为数学对象,这个对象下即包含了属性,也包含了许多的方法。数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。// 属性都是成对出现的,属性名 和 值,它们之间使用英文 : 分隔。// 属性都是成对出现的,属性名 和 值,它们之间使用英文 : 分隔。// person 是一个对象,它包含了一个属性 name。
2023-12-24 22:11:54
867
1
原创 JavaScript 基础 - 03
script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] </ script >// 1. 语法,使用 [] 来定义一个空数组。
2023-12-24 17:34:48
788
1
原创 JavaScript 基础 - 02
小括号内的条件结果是布尔值,为 true 时,进入大括号里执行代码;数字是用来计算的,比如:乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。: 一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分支 更简单。使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同。 (1) 取钱则是减法操作, 存钱则是加法操作,查看余额则是直接显示金额。分支语句可以根据条件判定真假,来选择性的执行想要的代码。
2023-12-24 17:34:00
819
1
原创 nacos安装后启动不成功
原因是不能在nacos文件夹下双击启动,必须进入bin目录后输入指令。明明按照视频的步骤来装但是nacos启动不成功。
2023-07-23 22:34:01
277
1
原创 eureka服务名称显示unknow
因为yml格式是大小写敏感的,使用缩进表示层级关系,缩进时不允许使用Tab键,只允许使用空格,缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。(通常采用两个空格表示一个缩进),冒号后面要加一个空格。再初学eruka时,明明可以运行并且一切正常但是在eruka网页时有服务的服务名称显示unknow,我初次的错误形式。一定要严格按照上述格式。
2023-07-23 22:30:21
233
原创 Git简易教程
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。
2023-07-11 00:17:14
107
4
原创 最小生成树
最小生成树:一个图中可能存在多条相连的边,我们一定可以从一个图中挑出一些边生成一棵树。这仅仅是生成一棵树,还未满足最小,当图中每条边都存在权重时,这时候我们从图中生成一棵树(n - 1 条边)时,生成这棵树的总代价就是每条边的权重相加之和。一个有N个点的图,边一定是大于等于N-1条的。图的最小生成树,就是在这些边中选择N-1条出来,连接所有的N个点。这N-1条边的边权之和是所有方案中最小的。普里姆算法:1.任意找一个点,生成一个集合a,将除此点之外的另外的点放入另一个集合b,构建一个表,表中
2022-02-19 15:51:54
553
原创 最短路题解
图:顶点与边的集合。表示为G(V,E)。G表示图,V表示顶点个数(即图中的元素),E表示边的数;图中一定有顶点,边可以没有,任意两个顶点都可能有关系floyd算法:感觉像是一种动态规划,建立一个二维数组,用来表示两点间的最短路径值,开始的时候是初始化的值,用三个循环,不断判断通过其他顶点的参与,是否有最短路径可取,更新两点间的最短距离基本代码#include<bits/stdc++.h>.using namespace std;int main(){ int e[10
2022-02-14 19:26:03
516
原创 kmp和字符串哈希题解
1.当看到这一题的时候,我不带脑子抬手就做,这个题目乍一看就是用暴力搜索,我开始想的是用一个一个的比的方式,遇到一样的字母就往后移,遇到不同的字母就整体向后移一位,然后花费大量时间写出了一个暴力代码,果然事情没那么简单,妥妥的时间超限了。然后我就仔细看了一下这个题的标题KMP字符串匹配我悟了,这是要自学新算法的节奏,于是我去找到那本大话数据结构搁那磨磨唧唧,发现串和串的基本知识都能懂,但就是kmp这个知识点不进脑,我又秉持着不看别人的代码的毛病,结果白忙活了。果然啥事开头难,我.
2022-02-14 19:16:37
427
原创 并查集,二叉树,快排题解
根据前序遍历遵循“根左右”和中序遍历遵循”左根右“的特点,首先一棵二叉树的前序第一个是根,那么在中序中,根就把中序分成左子树和右子树,然后我们再把左子树和右子树看成单独的两棵二叉树,然后跟之前一样在前序找到根,再分成左子树和右子树,不断递归直到不能再分就可以按照后序输出的规律输出#include<stdio.h>#include<string.h>char a[100],b[100];void fun(int root,int start,int end)//...
2022-01-23 13:58:25
414
原创 关于搜索的题解
一、八皇后 Checker Challenge假设有一张n*n表格,上面全是0代表空,然后我们一行一行的遍历,每一行放一个并做好标记在标记的时候,实际上我们只需要标记三个方向,,左下,正下,右下(应为一行只会有一个皇后,并且已经放好皇后的行数在没有回溯的情况下不会受到接下来皇后的放置的影响)标记是通过加一,也就是每有一个皇后的不能放的范围触及到那里,就加一,这样回溯的时候就减一,就会避免掉回溯把几个皇后的触及范围全部消掉。#include<stdio.h>int.
2022-01-16 10:52:25
516
原创 八皇后 Checker Challenge
假设有一张n*n表格,上面全是0代表空,然后我们一行一行的遍历,每一行放一个并做好标记在标记的时候,实际上我们只需要标记三个方向,,左下,正下,右下(应为一行只会有一个皇后,并且已经放好皇后的行数在没有回溯的情况下不会受到接下来皇后的放置的影响)标记是通过加一,也就是每有一个皇后的不能放的范围触及到那里,就加一,这样回溯的时候就减一,就会避免掉回溯把几个皇后的触及范围全部消掉#include<stdio.h>int map[20][20]= {0},n,result[20...
2022-01-13 23:15:13
166
原创 PERKET
题目描述Perket 是一种流行的美食。为了做好 Perket,厨师必须谨慎选择食材,以在保持传统风味的同时尽可能获得最全面的味道。你有 nn 种可支配的配料。对于每一种配料,我们知道它们各自的酸度 ss 和苦度 bb。当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种配料的苦度的总和。众所周知,美食应该做到口感适中,所以我们希望选取配料,以使得酸度和苦度的绝对差最小。另外,我们必须添加至少一种配料,因为没有任何食物以水为配料的。输入格式第一行一个整数 nn,表示可供选
2022-01-12 18:21:54
389
原创 判读队列的合法性
#include<stdio.h>void push(int n,int a[]){ int j=1,top=0,w[2000]= {0};//初始化 for(int i=0; i<n; i++) { if(w[top]!=a[i])//当栈的顶端与队列第一个不相等时 { for(; j<=a[i]; j++)//逐步输入栈 { top+...
2021-12-15 22:27:48
371
空空如也
video.js当前时间控件无法显示
2023-10-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人