自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (8)
  • 收藏
  • 关注

原创 AIGC是缺失的最后一块拼图?——关于虚拟世界(元宇宙)的畅想

近几年,互联网科技圈可谓是风云变幻,各种高新技术像是雨后春笋般的纷纷涌现而出,让众多技术人应接不暇,大呼“学不动”的同时,这些高新技术也在逐步勾勒出一个新世界的轮廓。伴随着近期最为火爆的 AIGC 概念在国内外技术领域带来的生产力革新,或许原本欠缺的最后一块拼图也逐步复现。或许,虚拟世界的真正诞生时间已经不再那么遥远了。那么,究竟组成虚拟世界都需要哪一些技术,需要哪一些拼图和元件的支撑才能构建呢?我最近这段时间思索良久,觉得虚拟世界所涉及的关键因素:算力、网络、沉浸式、安全性、创造性、秩序,结合自己所知所学

2023-08-05 09:06:41 205

原创 Kiner算法刷题记(十六):二叉平衡排序树——AVL树(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记前言了解了二叉排序树和AVL树的基本概念,知道了前驱节点和后继节点的含义以及对于AVL树的左旋和右旋操作有了基本的认知,接下来就通过一些相关的算法题深入巩固一下这些知识点。面试题 04.06. 后继者解题思路题目说明了该二叉树时一个二叉排序树,那么,我们可以在中序遍历的过程中,访问到每一个节点,而当前节点的后继节点,其实就是在中序遍历

2021-09-29 22:18:39 123

原创 Kiner算法刷题记(十六):二叉平衡排序树——AVL树(数据结构基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记二叉排序树(二叉搜索树、二叉查找树)基础知识二叉排序树也叫二叉搜索树、二叉查找树,他相较于普通二叉树的性质如下:二叉排序树的性质二叉排序树的任意左子树的值都小于他的根节点的值,任意右子树的值都大于他的根节点的值,二叉排序树的中序遍历结果是一个单调递增的有序序列。二叉排序树性质的维护插入新节点从上面的操作过程我们可以看出二叉排序树

2021-09-29 22:16:52 102

原创 Kiner算法刷题记(十四):数据结构中的“渣男”——单调栈(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记503. 下一个更大元素 II解题思路由于题目要求找到每个元素下一个更大的元素,明显就是求最近大于关系的问题,因此,我们可以使用单调递减栈来帮我们解决这个问题。不过,这道题还有一个特殊的点,就是需要循环搜索,此时,我们可以使用一个编程技巧,就是将目标元素组内的元素copy一份,让新的数组时原始数组的两倍,这样就可以很方便的处理循环搜索问题

2021-08-01 20:37:14 161

原创 Kiner算法刷题记(十四):数据结构中的“渣男”——单调栈(数据结构基础篇)

知识回顾我们之前讨论过单调队列,知道单调队列是用来维护区间最值的神兵利器:维护区间最小值用单调递增队列,维护区间最大值用单调递减队列。单调队列有两种操作:入队操作:从尾部入队,入队时,为了保证队列的单调性,需要将队列中已有所有违反单调性的元素都删掉之后再将新元素入队出队操作:当头部元素已经移出了滑动窗口时,需要将头部元素从头部出队。那么,大家再来思考一件事,我们的队列和栈有啥关系吗?我们是不是可以把栈看成是一头被堵住的队列呢?由于便秘,屁股被堵住了出不去,所以这哥们只能通过抠喉把吃进去的东西吐出来

2021-08-01 20:34:56 132

原创 Kiner算法刷题记(十三):单调队列(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记239. 滑动窗口最大值解题思路求取滑动窗口最大值,由于滑动窗口问题实际上就是固定结尾的RMQ问题,我们可以使用单调队列解决,而要求解的是最大值,因此应该使用单调递增队列。代码演示/* * @lc app=leetcode.cn id=239 lang=typescript * * [239] 滑动窗口最大值 */// @

2021-07-25 15:35:40 126

原创 Kiner算法刷题记(十三):单调队列(数据结构基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记从RMQ问题开始RMQ问题(Range Minimum/Maximum Query),即区间最大/最小值求解问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。RMQ(x,y),就是求解一个数组在(x,y)区间内的最小值

2021-07-25 15:34:29 152 2

原创 Kiner算法刷题记(十二):深搜(DFS)与广搜(BFS):初识问题状态空间(手撕算法)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记前言了解了搜索算法的很核心概念,知道了问题求解树是个什么东西,掌握了深搜和广搜的特点以及实现思路之后,下面将分别针对深搜和广搜进行刷题巩固。编程技巧扩展方向/偏移量数组// 如下面的二维数组,$所在的位置,他要移动一步有四种可能性:// 1. 向上移动一步,即y坐标-1,x坐标不变(0,-1)// 2. 向左移动一步,即x坐标-1

2021-07-11 09:40:24 287

原创 Kiner算法刷题记(十二):深搜(DFS)与广搜(BFS)——初识问题状态空间(算法基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记搜索的核心概念问题求解树问题求解树又叫问题状态树或状态求解树。这不是一个真实的计算机结构,而是我们思维逻辑层面的一种结构。如下图,我们可以将状态1展开得状态2、状态3、状态4,而状态3又展开得状态5和状态6. 状态1 / | \ 状态2 状态3 状态4

2021-07-11 09:38:52 222 1

原创 Kiner算法刷题记(十一):哈希表与布隆过滤器(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记前言了解了哈希表的底层实现原理,知道了哈希函数的设计、哈希冲突的解决方案以及布隆过滤器的应用场景之后,再来一波算法题加深一下对哈希表的理解吧。705. 设计哈希集合解题思路这道题我们其实就可以直接使用拉练法实现哈希表,因为这道题要求删除元素,而链表对于插入和删除元素的效率都是很高的。代码演示/* * @lc app=leetco

2021-06-26 08:25:44 184

原创 Kiner算法刷题记(十一):哈希表与布隆过滤器(数据结构基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记哈希表解决了什么问题哈希表主要利用数组索引查找的高效来解决了快速索引数据的问题。我们知道,数组给出下标x,要查找x中存储的值是相当快的,其时间复杂度是O(1)。但由于数组的索引是整形,而我们实际开发工作中可能需要用于索引的数据类型可能是字符串、或者其他的自定义类型,没办法直接使用数组索引的方式快速查找。那么,有没有一种方式,能让我们使用

2021-06-26 08:23:16 292

原创 Kiner算法刷题记(十):二分查找(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记69. x 的平方根解题思路这道题我们可以使用二分法来解决,由于我们知道:parseInt(x/2)^2 <= (√x)^2,因此我们可以知道,我们要查找的x的平方根的范围是在0~x/2的范围之内,只需要设置两个指针,并通过头尾指针取中间值的方式计算出mid,然后,让mid^2与x作比较便可。代码演示/* * @lc app=

2021-06-20 11:36:08 169

原创 Kiner算法刷题记(十):二分查找(算法基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记二分查找算法通过头尾指针确定查找区间,然后通过不断地缩小查找区间来缩小我们的查找范围,最终找到目标值。所以二分查找其实二分的是查找区间。二分查找在每一次调整查找区间时,一定会保证如果存在目标值,那么这个目标值一定存在与我们调整后的查找区间当中。PS:二分查找的条件是在有序数组中查找,无序数组需要从小到大排序后再进行二分查找# 使用二分法

2021-06-20 11:31:32 144

原创 Kiner算法刷题记(九):有趣的排序思想(手撕算法篇)

1122. 数组的相对排序解题思路这题是典型使用计数排序的题目,我们只需要根据第二个数组中的元素对第一个数组中每一个元素统计数量,然后按照计数排序的规则先将第二个数组中有的数放入结果数组,然后再将第二个数组中没有的元素依次加入到结果数组即可。代码演示/* * @lc app=leetcode.cn id=1122 lang=typescript * * [1122] 数组的相对排序 * * https://leetcode-cn.com/problems/relative-sort-arr

2021-06-13 11:03:50 137

原创 Kiner算法刷题记(九):有趣的排序思想(算法基础篇)

计数排序基础知识与原理当我们待排序的序列中只有有限种类的数,如只有1,2,3三个数字时,适合使用计数排序,因为只有这么几种情况,我们只需要把每个数字出现的次数统计出来,然后按照顺序依次输出每个数字统计个数的数即可。如:原数组:[3,2,2,3,1,1,2]计数:1出现了2次,2出现了3次,3出现了两次排序: 先输出两个1,在输出3个2,最后输出2个三结果: [1,1,2,2,2,3,3]应用场景综上所述:计数排序适用于简单的单值排序问题,排序问题中,数据的值域很有限例如:我现在要统计全国所有

2021-06-13 11:02:30 196

原创 Kiner算法刷题记(八):归并排序MergeSort(手撕算法篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记23. 合并K个升序链表解题思路这道题算一个比较综合性的题目,既涉及到了之前学过的链表,也涉及到了堆,还涉及到了归并排序的逻辑。首先,我们来想一下,合并三个链表的过程,是不是跟归并排序的过程及其相似,在几个链表中找到他们的最小值,然后放入到一个临时的链表中,然后继续找下一个最小值。而在找链表最小值的时候,又可以使用我们之前学过的小顶堆来快

2021-06-09 09:48:15 587

原创 Kiner算法刷题记(八):归并排序MergeSort(算法思想基础篇)

系列文章导引系列文章导引开源项目本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star。GitHub传送门:Kiner算法算题记定义所谓归并排序,就是在递归过程中将数组进行拆分,然后再回溯的过程中将递归的结果合并。因此,归并排序大体上分为两个步骤:递归分解回溯合并算法优势大数据排序的霸主级算法归并排序二路归并排序将两个有序数组合并为一个有序数组原理# 例如将下面的数组进行排序[1,4,2,3,5,8,6,7,9,0]# 进行归并排序的时

2021-06-09 09:46:54 145

原创 Kiner算法刷题记(七):快排及快排思想(手撕算法篇)

系列文章导引系列文章导引前言我们熟悉了快速排序的思想与其实现原理之后,可以在我们实际开发中带来很多的启发与灵感,借助快速排序双指针的游走的思想,我们也可以解决很多类快排问题。现在就来借助一些算法题巩固一下对于讨论的快排思想。刷题剑指 Offer 21. 调整数组顺序使奇数位于偶数前面解题思路这道题的要点就是我们要找到数组中的奇偶数,并将他们按照规则放到他们改在的地方。我们可以借助快排中的双指针思想,让左右游标不断在数组中游走,左游标遇到偶数和右游标遇到奇数时,我们就可以让左右游标对应的值交

2021-06-06 12:28:03 175

原创 Kiner算法刷题记(七):快排及快排思想(算法基础篇)

系列文章导引系列文章导引快速排序的基础知识排序我们对于数组排序的目的是:让一个无序的数组趋于有序,那么我们一个长度为n的数组,那么这个数组有n!种排列方式排序算法的重要性问题系统熵决定了一个问题被解决的难易程度PS: 在计算机领域,可以把熵理解为复杂度排序算法之所以很重要,是因为它能够降低我们问题系统熵的大小。当一个乱序的数组经过排序算法处理后,我们的数组就趋于有序了,这样,我们就由一个熵很大的无序数组变成了一个熵较小且稳定的有序数组了。我们的问题熵越小且越稳定,我们就能够更好的解决

2021-06-06 12:25:39 349

原创 前端程序员的自我修养(算法与数据结构进阶之路)

积沙成塔,滴水穿石,谁说一个前端程序员就不能有自己的自我修养了?算法与数据结构作为计算机领域通用技能,贯穿开发生涯始终,如果没有一个夯实的数据结构与算法基础,就犹如空中楼阁,无法长久而立。本专题创建的初衷,一来见证自己的成长历程,二来给后来与我有相似经历者一个引路明灯,不走弯路。......

2021-06-06 12:21:59 371 3

原创 kiner算法刷题记(五):堆(Heap)与优先队列(手撕算法篇)

前言我们上一篇文章聊了一下堆的概念和性质,相信大家对堆这样的数据结构已经有了一个初步的认识了,为了加深理解以及熟悉堆的应用场景,接下来带大家刷几道算法题加深一下记忆,在此之前还不太了解堆的性质的同学,请先移步堆(Heap)与优先队列(数据结构基础篇)。PS: 下面的算法解题思路不一定是解决这个算法最优的思路,但是,为了巩固对于堆的使用和特性的理解,我们都是用堆的方式实现,某些题目不使用堆,使用其他方式或许能够更加高效的完成任务,这些各位同学可以自己去琢磨。LeetCode 剑指Offer 40. 最小

2021-04-11 20:16:39 251 1

原创 kiner算法刷题记(五):堆(Heap)与优先队列(数据结构基础篇)

堆(Heap)与优先队列引申知识何为数据结构数据结构可以拆借为两部分:结构定义 + 结构操作拿今天要讲的大顶堆来举个例子:结构定义:一种具有任意根节点的值的大小都大于他的左右子树根节点大小的完全二叉树性质的数据结构结构操作:插入、弹出操作结构操作的根本目的就是为了维护结构定义的结构,也就是说,在插入和弹出一个大顶堆的节点时,我们始终都要确保这个大顶堆的性质不变,如果改变了,就要想办法调整回来。总结:数据结构就是定义一种性质(原则),并维护这种性质,我们的任何操作都必须始终遵循我们定义

2021-04-11 20:15:02 137

原创 kiner算法刷题记(四):你真的了解二叉树吗(手撕算法篇)

你真的了解二叉树吗(手撕算法篇)前言本文属于系列文章《你真的了解二叉树吗》的第二部分——手撕算法篇。如果你还没有看过第一部分你真的了解二叉树吗(树形结构基础篇)的话,强烈建议先看一下第一部分的内容,这样你在解题时会更加如虎添翼。很多第一篇里面已经讲过的内容,在这里将不再赘述。二叉树基础刷题部分LeetCode 144 二叉树的前序遍历解题思路如果你有看过我上一篇文章你真的了解二叉树吗(树形结构基础篇)的话,应该已经知道了,我们树的遍历天生就适合使用递归实现,此外,还讲了如何设计和实现一个递归函数

2021-04-04 21:35:09 157

原创 kiner算法刷题记(四):你真的了解二叉树吗(树形结构基础篇)

树形结构基础相较于链表每个节点只能唯一指向下一个节点(此处说的链表是单向链表),树则是每个节点可以有若干个子节点,因此,我们一个树形结构可以如下表示:interface TreeNode { data: any; nodes: TreeNode[]}树的度PS: 在图结构中,也有度的概念,分为出度和入度,如果把树看作是图的一部分的话,那么严格来说,树的度其实是出度。不过,在树形结构中,我们通常把度这个概念作为描述当前树节点有几个子节点。即每个节点拥有几个孩子,因此,二叉树的度最大是2

2021-04-04 21:32:40 280

原创 kiner算法刷题记(三):线程池与任务队列

系列文章导引Kiner算法刷题记(一):链表和链表思想kiner算法刷题记(二):递归与栈(解决表达式求值问题)kiner算法刷题记(三):线程池与任务队列概念有一个连续的存储区存储任意结构,有头指针和尾指针,尾指针一般指向最后一个元素的下一位先入先出(FIFO)基本操作一个最简单的队列结构至少要支持以下两种操作:入队(push)尾指针向后移动一步,并插入元素出队(pop)逻辑出栈:头指针向后移动一步真实出栈:如果使用数组模拟队列的话,就是调用数组的shift方法,将数组

2021-03-27 16:05:50 169

原创 kiner算法刷题记(二):递归与栈(解决表达式求值问题)

系列文章导引Kiner算法刷题记(一):链表和链表思想思考要做一件事情,我们可以+1,也可以入栈,这只是一种思维方式的问题,本质上原理都是一样的同理,要完成一件事情,我们可以-1,也可以出栈(()())这样我们其实可以理解为外层的一对括号代表一个大任务,但我们要完成这个大任务是有前置条件的,那就是完成里面的两个小任务,也就是中间的两对括号。因此,类似括号配对的这种思维方式,其实不仅仅用于对于一些字符串或html之类代码的解析上,还可以泛化为以下几种场景:一对()可以看成一个完整的事件,而

2021-03-21 14:17:24 175

原创 Kiner算法刷题记(一):链表和链表思想

基本概念和链表思想链表的基本概念和结构链表从js中的表现形式来看,其实就是一个具有一个属性用于存储数据,有一个属性用于存储下一个节点地址引用的对象结构,简易链表结构如下:function LinkNode(val, next=null) {​ this.val = val;​ this.next = next;}我们经常听说的区块链,其实本质上就是一个链表结构。至于链表结构都有哪些应用场景,下文会有详细讲解链表思想按照个人的理解,链表思想其实并不局限于链表这样的一个数据结构,

2021-03-07 22:19:50 299

原创 金三银四:基于AST的简易代码自动生成工具实现思路与原理剖析

基于AST的简易代码自动生成工具实现思路与原理剖析背景经常负责业务系统开发的小伙板门应该会经常遇到这样的一种情况,刚开始跟服务端约定好了接口文档之后,前端的小伙伴就会开始巴拉巴拉地根据接口文档提供的请求参数、响应结构等信息编写属于前端Models层用于描述接口请求参数、响应结果的结构,编写Services层用于发起接口请求等。但是,一旦服务端稍微改动了某一个接口的字段描述或代码接口,我们又得抱着开(捅)开(他)心(一)心(刀)的心态去调整我们的Models和Services结构,反复几次的话,简直不要

2021-02-18 11:29:03 1512

原创 解决使用自定义域名时webpack的devserver热更新失效的问题

解决使用自定义域名时webpack的devserver热更新失效的问题背景如今webpack几乎成为了前端应用不可或缺的工具,其强大的功能和生态,让我们能够做到很多以前想都不敢想的事情。在开发阶段,相信大家都会用到webpack的devserver工具,此工具可以实现热更新,即我们代码改变后,实时进行编译,并实时更新页面上的对应视图,已达到代码更改,页面立即生效的效果,极大提升了开发效率。然而,近期,由于公司业务框架需要,我们不得不使用自定义域名,如:devxxx.kiner.com,而不是使用loc

2020-11-15 11:02:15 1787 1

原创 chrome快速切换host的扩展程序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、开源项目 二、使用方法前言各位前端开发的小伙伴是不是会经常遇到这样一个场景,我们的网站部署到多台不同的服务器上,用户保障说网站有时可以打开,有时打不开,这时候就会想到是某一台机器挂了,服务器负载均衡分配到这台机器的时候,用户就访问不了了。通常,我们需要验证是否真的是某一台机器出问题,以及哪一台机器出问题,一般是会本地修改host文件,让浏览器访问的时候,直接以本地的host文件配置的ip去访..

2020-10-08 16:32:59 2243

原创 玩转MAC——Automator.app的诸多妙用

玩转MAC——Automator.app的诸多妙用复制当前文件/目录的绝对路径效果预览# 复制出来的结果/Users/tangwenhui/ub.kiner.com快速操作自动服务定制流程解析所选二维码图片定制解析所选二维码图片由于此功能涉及到解析二维码图片的逻辑,光靠工作流没办法完成,我们可以借助nodejs辅助完成二维码识别功能# 首先,安装nodejs基础依赖yarn global add @kiner/qrcode-reader# 使用yarn安装的话会在生成以下文件

2020-08-29 23:42:54 576

原创 前端到全栈:MAC中使用iTerm2一秒钟打开多台服务器阵列

前端到全栈:MAC中使用iTerm2一秒钟打开多台服务器阵列背景随着前端行业的不断发展,尤其是NodeJs的横空出世,前端能够做的事情越来越多,从刚开始单纯的做网页到现在遍布于互联网的各个领域,如:前端页面、移动端嵌入式H5(Hybird APP )、React Native等的原生级移动端应用、Electron等开发桌面应用、express、eggjs、koa开发的NodeJs服务、以及基于NodeJs开发的各种实用工具webpack、gulp、grunt等等,可以说,如今的前端已经从以往仅关注与页

2020-08-18 11:28:31 1236

原创 Taro全局监控页面生命周期实现数据统一埋点上报

背景在一个比较成熟微信小程序中,为了统计每个页面的行为,如统计页面PV、UV、对页面元素点击等事件进行监听,并且上报到我们自己的数据统计服务器上,目前网上能找到的大部分方案是通过手动埋点的方式实现,这种方式效率较低,来一个页面就要加一个统计逻辑,对代码的侵入较多。且网上的方案都是基于原生微信小程序的解决方案,对于使用Taro进行开发的项目来说,有点力不从心,因此,通过一段时间的研究与实验,整理...

2020-04-29 11:55:53 3187 20

原创 react-router-dom源码学习之实现一个自定义的路由组件

现代前端应用,几乎已经离不开前端路由这个概念了,只要稍微复杂一点的前端应用,都会选择引入前端路由的方式,使我们的不同的模块能够有机组合并通过浏览器的历史进行管理。今天,本人学习了一下react-router-dom的底层实现原理,尝试实现一个简易版的react-router(仅实现基于浏览器History的路由方式)// 路由容器组件import React, { Component } ...

2020-03-15 15:49:58 318

原创 前端面试知识梳理(高级前端开发工程师)

css部分盒子模型margin+border+padding+contentContent边界/内边界: content边界环绕在由该元素的宽和高决定的一个矩形上,这个尺寸通常由该元素渲染后的内容决定,这四个content边界组成的矩形框就是该元素的content box.Padding边界:padding边界环绕在该元素的padding区域的四周,顾名思义,填充背景色.如果pad...

2020-03-11 10:35:29 3109 2

原创 Vue数据响应化原理之盘点看似路人皆知实则发人深省的优雅用法

目录通过索引添加/替换/删除数组元素使用拦截器与覆盖原型链方式更改目标数据原型不考虑顺序的遍历灵活使用全局或静态变量达到公共存储目的一个可全局修改局部使用的开关变量深度观测实现的优雅将自己主动加入到目标订阅列表中Vue如今可说是极大炙手可热的前端基础框架之一,其渐进式的设计让使用者无论是在现有的系统上集成开发还是使用Vue全家桶开发一个大型项目都非常便捷。...

2020-02-06 15:19:47 294

原创 手写简易版Vue源码之数据响应化的实现

当前,Vue和React已成为两大炙手可热的前端框架,这两个框架都算是业内一些最佳实践的集合体。其中,Vue最大的亮点和特色就是数据响应化,而React的特点则是单向数据流与jsx。笔者近期正在研究Vue源码,在此过程中尝试实现一个简易版的Vue,而实现Vue的第一步便是解决数据响应化的问题。以下便是对Vue响应化的简易版实现。数据响应的原理:1、依赖收集:data通过Observer...

2020-01-13 09:55:40 417

原创 Taro微信小程序开发技巧之全局公共组件(如全局公共弹框)

序 在小程序开发中,我们经常会有这样的需求,需要全局添加一个自定义的弹框,这个弹框可能在任意一个页面中展示,而且这个弹框有着相对复杂的布局与交互,不适合使用微信提供的原生modal,此时,我们要如何添加一个所有页面都公用的弹框,使所有页面都有办法可以调起显示这个弹框呢,以下便来一一分析实现 正文 首先,需要实现所有页面共享弹框组件,那么第一时间想到的便是做一个自定义的组件,然后把...

2019-08-25 22:42:15 20746 5

原创 循环依赖的那些事儿

在业务开发过程中,经常会使用 antd 作为 UI 组件库构建页面,然而在 [email protected] 版本之前的版本,众多组件存在循环依赖的现象,导致在 vite 、rollup、microbundle 等构建工具中都出现大量的警告。对于一个用户量庞大的组件库来说,这无疑是一个巨大的隐患,有可能导致使用者在使用 antd 时出现一些不可预料的问题。因此,antd 的核心贡献者 afc163 决定立项整改 antd 当中循环依赖的乱象

2023-08-05 09:00:35 455

原创 2022年GitHub年终小结

2022年GitHub年终小结:参与开源项目:- AntDesign/ProComponents,贡献46个PR- AntDesign/AntDesign,贡献20个PR- NeteaseYanxuan/OSSA,贡献个54PR

2023-01-03 10:09:28 254 1

KinerVue.zip

本文件是本人在学习Vue源码过程中,自己尝试实现的简易版Vue源码,此版本已经实现的功能如下: 1、数据响应化-Observe.js(Array.js-数组响应化的一些相关处理) 2、数据观察者-Watcher.js(Traverse.js-通过traverse递归访问指定对象,通过触发getter的方式实现依赖收集) 3、依赖管理者-Dep.js 4、工具方法$watch-观察属性变化的方法、$set-为对象添加属性或者为数组添加子项,并通知依赖更新、$delete-删除对象属性或删除数组子项并通知依赖更新

2020-01-16

taro-global-component.zip

为解决在某些特定场景下,需要使用全局公共组件,如全局公共弹框的情况,并对这些公共组件进行统一管理和维护,使用redux进行全局状态管理封装成全局基础组件,只需在需要使用公共弹框的页面引入组件便可方便使用,详细使用方式可以看:https://blog.csdn.net/u010651383/article/details/100068766

2019-08-27

js/jquery树形菜单

一个便捷实用的网页树形菜单插件,jquery和js两种方式调用,数据配置,灵活易用,浏览器兼容好(IE兼容至IE9,兼容现有大部分主流浏览器)。

2016-05-23

Ext2.2API中文版(最终完成版).rar

ExtJs,Ext2.2API,中文版,最终完成版

2016-05-17

列表项增效插件(JQuery-superlistitem)

为一些简单的列表项添加一些个性化功能,如增加复选框选中区域方便选择,列表项手动和自动排序相结合,自定义鼠标移入色,鼠标点击色等。

2014-11-24

安卓word开发支持jar包(poi)

如果需要在安卓平台中对word进行一些读取以及编辑操作的开发,这个jar可以满足你的要求。

2014-06-10

jquery插件——跳动的文字

此插件可将所给字符串进行处理,是该字符串能够在鼠标以上时跳动起来,是一种文字特效的插件

2014-05-06

java打字测速工具

本软件是一款基于java语言开发的一个打字测速的小软件,具有错字校验、错字变色提醒、随意更换背景前景色等功能。此文件内含java工程源码和可执行exe文件

2013-08-23

空空如也

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

TA关注的人

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