自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 问题:如何避免子组件传入相同对象时更新

我有一个父组件,里面包含一个子组件,子组件传入了一个对象,假设对象是字面量。当我的父组件更新时,子组件也会更新。导致不必要的渲染。

2024-04-18 15:03:30 187

原创 问题:react函数中的state是上一次的值

个人尝试:设置一个state存储选择的表情包,然后通过useEffect监听state的变化更新message。输入框通过设置value和onClick做了一个简单双向绑定,其中value的值为store里的message。表情包组件做了一个方法,选择表情包时通过回调传回值与message值做拼接,结果message值为上一次的值。结果:当我输入一段文字后,添加一个表情包,再输入一段文字,再添加一个表情包时。通过redux创建了store,存储一个message的状态,用于表情包和输入框共享状态。

2024-04-17 11:28:48 433

原创 webpack + ts 搭建 web 应用

webpack中html插件,用来自动创建html文件。: webpack中的清除插件,每次构建都会先清除目录。: 用来使老版本的浏览器支持新版ES语法。: webpack配置合并。:webpack开发服务器。: babel的加载器。

2024-04-15 19:56:32 391

原创 antd的tooltip嵌套内部组件报错

查了半天,也没有循环依赖。

2024-04-12 12:54:05 245

原创 简单封装一下redux

每次添加一个新的redcuer时,需要手动添加到combineReducers,非常麻烦,又没有一种方法可以自动导入呢?

2024-03-29 16:47:35 335

原创 vite配置别名警告‘__dirname‘ is not defined.

_dirname为node环境的变量。

2024-03-29 16:04:39 254

原创 vue2+elui报错[Vue warn]: <transition-group> children must be keyed: <ElTag>

我没有使用transition-group,很明显是一个内部错误。错误触发时机是我选择了多选框的内容,点击表单重置按钮,报错。虽然重置后多选框的值都没了,但是并未显示【请选择】字段,说明value是有问题的。

2024-03-23 08:41:38 402

原创 vue2的v-model不更新

动态生成组件时,动态为表单添加属性,同时使用v-model以数组形式访问表单属性。通过监听表单对象,发现并未实施更新。

2024-03-23 08:08:57 330

原创 vue3通过canvas提取图片主演色

可以自己过滤一些自己不喜欢或者不需要的颜色,最后通过回调函数传回去。

2024-03-02 11:16:41 400

原创 vue3通过IntersectionObserver实现图片懒加载

加载前:加载后:

2024-03-01 15:57:04 393 1

原创 ts导入threejs的OrbitControls找不到模块或声明

查看库可知,example的模块都申明在Addon中。前提条件:已安装@type/three。

2024-02-04 15:43:53 514

原创 使用threejs的轨道控制器滑动滚轮物体消失

今天使用轨道控制器时突然发现滑动滚轮物体消失,打印相机到零点距离要么为零要么为NAN。原因:对浏览器做了缩放。将浏览器缩放为正常大小即可。

2024-01-26 22:42:37 398

原创 vue3+ts封装阿里矢量库

由于ui框架的图标很少,常常找不到自己想要的图标,这里封装一下阿里矢量库的图标库。

2023-12-27 22:46:28 373

原创 vite+ts+pinia初始化项目(代码规范插件)

创建命令选项如下跑动代码就没问题效果如下。

2023-12-27 11:31:05 1009 1

原创 husky与commitlint配合使用报错

原因: commitlint.config.js后缀需要为.cjs。

2023-12-27 10:30:56 474 1

原创 湖科大编译原理一篇就够了

没时间了,只掌握技巧主要根据作业2-7章我只是针对作业学习技巧,认真的大哥块绕道。

2023-06-13 18:19:53 770 15

原创 湖科需求工程还有半天怎么办?上个厕所就够了

过程是一组相关活动的集成,通过这些活动的执行,可以完成一项任务或者达到一个目标。需求工程过程是系统开发中需求开发活动的集成,它以用户所面临的业务问题为出发点进行分析和各种转换,最终产生一个能够在用户环境下解决用户业务问题的系统方案,并将其文档化为明确的规格说明。系统边界是系统与环境互动的界限,定义系统边界可以明确系统需要满足的与外界的交互行为,从而从宏观上界定了系统的功能概要。系统边界是需求工程后期阶段需求分析活动的起始模型.后期的需求分析可以看成是逐一细化系统边界中的对外交互行为的活动。

2023-05-13 21:30:09 215 4

原创 湖科软件工程期中考试一天就够了

软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。软件过程通常被视为软件工程中最重要的组成部分之一,因为它可以提供一种有序、可控的方式来管理软件开发过程。通过采用适当的软件过程,可以确保软件开发过程中的质量和效率,并提高软件开发过程中的可靠性和可维护性。惯用过程模型(Ad-hoc process model)指的是一种没有明确定义的软件开发过程,通常是由个人或小团队根据自己的经验和方法开发软件。

2023-05-08 21:40:39 232 2

原创 CSS-Battle

【代码】CSS-Battle。

2023-03-19 13:00:01 265 1

原创 响应式布局

响应式布局

2023-03-08 20:39:52 650

原创 计组一篇就够了

2023-02-06 16:50:02 2523 4

原创 数据库期中考试这一篇就够了

搞不赢了

2022-11-28 23:55:58 988 4

原创 LeetCode-电话号码的字母组合(构造多叉树)

用示例一表示我们容易看出,我们只要将各数字对应的字母一一作为上一个数字的孩子,最后输出每一条路径,即为最终答案。构造树的结构体typedef struct Tree{ char data; int childenNum; struct Tree* childen[4];//号码对应字母不超过4}Tree,*Bitree;构造多叉树void creatTree(Bitree* T,char*digits,int len)//len为digits长度{..

2022-04-18 21:03:17 290

原创 LeetCode-二叉树的所有路径(深度优先搜索)

设置sta数组储存当前路径当某节点左右孩子存在不为空的,将该点值加入sta数组中当某节点左右孩子为空,则将sta数组的值加上当前节点存入返回路径数组ret中通过树的深度遍历,就可以走完所有路径void Creat(struct TreeNode*root,int* returnSize,char** ret,int* sta,int top){ if(root) { if(!root->left&&!root->right) ...

2022-04-18 20:24:33 390

原创 LeetCode-二叉树的最小深度(递归)

观察二叉树最小深度与最大深度有些许相同。最大深度,我们只管往下遍历,只要有节点,我们就往下。而最小深度是,在所有存在的路径中

2022-04-12 23:18:07 372

原创 LeetCode-二叉树的直径(深度优先搜索)

观察二叉树的最大直径为两节点之间的边的数目,而这条直径我们可通过遍历一个节点,找出它左边最长路径和右边最长路径相加得到一条总路径。我们知道,任意节点都与根节点连通。我们把遍历的每一个点都当做根节点,那么他的左右最长路径就是他的最大深度。实现我们用DFS遍历节点,用全局变量max来实时存储当前直径最大值。具体代码如下int max;int Deep(struct TreeNode*root){ if(!root) return 0; int a=Deep..

2022-04-12 09:38:52 233

原创 LeetCode-买股票最佳时(动态规划)

动态规划问题观察假设我们拥有了股票,我们在第n天出售股票,得到的利润为销售金额减去收购金额,且收购金额比出售金额少才行。要使得金额最大,那么我们应当拿今天的出售金额减去之前收购金额最少的才行。我们不妨设置dp[i]数组,下标表示在第i天,dp[i]的值表示直到第i天,收购金额最少的数目(通俗来讲就是包括i天和i天前你可以收购的最小金额)。状态方程由观察得知,目前可收购最小金额为昨天收购最小金额与今天的金额的最小值,dp[i] = min{dp[i-1],prices[i]}边界..

2022-04-11 23:02:54 283

原创 LeetCode-寻找图中是否存在路径(并查集讲解)

并查集顾名思义,就是并和查操作,对象是一个集合。集合由并操作创造,通过对集合的查来寻找连通关系。集合我们通常用pre[i]数组表示,pre[i]表示i的上一级是pre[i]的值,也就是说,他们有连通关系。预知假设a-b,b-c,c-d,d-e,e-f。-表示连通关系,为了方便,每次并操作我们将左边的对象当作右边对象的上一级,我们就有pre[b]=a,pre[c]=b,pre[d]=c,pre[e]=d,pre[f]=e。假如我们想知道a,b是否存在连通关系,我们查找pre[b],发现等...

2022-04-11 22:17:22 558

原创 LeetCode-跳跃游戏(动态规划)

动态规划思想观察。我们设置dp数组,下标表示位置,值表示当前可跳最大步数。确定状态方程。我们进行一步一步跳的操作,假设我们要跳到第n个位置,那么dp[n-1]必须大于1,跳到位置n后,我们确定dp[n]的值。更新值来源于dp[i-1]-1 前一步可跳步数减1nums[i] 给出的可跳最大步数值我们只需找到这两个谁大就可以确定状态方程了。dp[i]=max{dp[i-1]-1,nums[i]}确定边界条件由状态方程知i-1>=0,位置0时我们设置它最大步数..

2022-04-08 11:47:24 4176

原创 LeetCode-打家劫舍||(动态规划)

在进行打家劫舍||前,我们了解到第一部打家劫舍第二部唯一的区别就是房子围成一个圈,首尾相连了,我们进行如下思考抢了第0间房子就不能抢最后一间房子,我们先把最后一间隔离,这样就防止同时抢了首尾房子。那可能抢了最后一间房子的金额比没抢还要多怎么办?再隔离开第一间房子实现第二次dp,找出两种抢劫金额数大的就行。int f(int* nums,int numsSize){ if(numsSize==1)return nums[0];int dp[numsSize];dp[...

2022-04-08 11:08:30 134

原创 LeetCode-打家劫舍(动态规划)

打家劫舍动态规划问题观察。我们设置dp数组,下标表示打劫房子序号,数值表示路过当前房子可打劫最大金额(因为相邻房子无法打劫,只能路过了)。确定状态方程。假设我们想打劫第n个房子,那么我们应该考虑到,第n-1个房则无法打劫,也就是说,我们当前总额只能从前n-2间房子打捞金额加上当前想要打劫房子的金额,但万一我们不想打劫第n间房子呢?这种情况出现在,假设我们通过例外一条打劫途径打劫了第n-1个房子,而且他的金额比打劫第n个房子金额还要多,那我们只能路过第n个房子了。这样我们就确定了状态方程了

2022-04-08 10:27:10 1116

原创 LeetCode-验证栈序列

借用示例一数据。大概思路:创建一个辅助数组a[5](栈),先将pushed[0]存入a[0]中,再将a[0]与popped[0]比较,若不相等,则继续将pushed数组中元素压栈a数组中.若相等,则出栈a数组元素.以此类推,直到pushed数组遍历完。具体实现:主要是考虑下标问题,关于数组遍历是采用先++还是后++,这里采用先++,因为这样p,q,top,都是实时指向当前值,而后++会使p,q,top指向它的下一个下标,先暂时不管.起始时我们设置pushed数组下标p=0,popped数组下..

2022-03-25 19:46:42 189 1

原创 单调栈和哈希表c语言题目:力扣496. 下一个更大元素 I(参考官解)

int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){int *ret=malloc(sizeof(int)*nums1Size);int a[10001],i,stake[nums2Size],top=-1;//a[]数组为索引数组,stake[]为栈*returnSize=0;stake[++top]=nums2[nums2Size-1];a[nums2[n.

2022-03-20 16:07:39 983

空空如也

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

TA关注的人

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