- 博客(215)
- 资源 (1)
- 收藏
- 关注

原创 重学JavaSe后的补充
文章目录1.三元运算符:2.基本数据类型转换:1)自动类型转换:2)强制类型转换:3.if-else和switch的区别:switch使用时的注意事项:4.三种循环的区别:5.break关键字的常见用法:6.continue关键字的用法:1.三元运算符:需要三个数据才可以进行操作的运算符。格式:数据类型 变量名称 =条件判断 ? 表达式a :表达式b int a=10; ...
2020-03-24 14:04:40
16603
9
原创 Vue渲染器(五):快速diff算法
快速diff算法实测中性能最优。它借鉴了文本diff中的预处理思路,先处理新旧vnode中相同的前置和后置节点。处理完后如果无法简单地通过挂载新节点或者卸载已经不存在的节点来完成更新,则需要根据节点的索引关系,构造出一个最长递增子序列,里面所指向的节点即为不需要移动的节点。
2022-12-15 17:55:56
741
原创 Vue渲染器(四):双端diff算法
这章介绍了双端Diff算法的原理和优势,简单来说主要通过新旧vnode的前后指针来判断,有四种命中情况,命中一种则不再进行判断。
2022-12-14 20:08:03
824
原创 Vue渲染器(三):简单diff算法
在这一章中,我们讨论了Diff算法作用,主要是用来计算新旧vnode的差异,并尝试最大程度复用DOM元素。并解释了为什么需要Diff算法,以及DOM复用带来的好处,以及key的作用。并通过几个例子讲解了渲染器是如何移动、添加、删除vnode所对应的DOM元素的。
2022-12-14 01:06:40
646
原创 Vue渲染器(二):挂载与更新
在前面,首先讨论了如何挂载子节点,以及节点的属性。节点的属性其实挺复杂的,涉及到的两个概念,HTML Attributes 和 DOM Properties是用来设置与之对应的的初始值的。该如何正确设置元素属性,取决于被设置属性的特点,以及对特殊属性class的处理。又该如何正确卸载,避免直接使用innerHTML来清空容器元素。还有vnode的类型,该如何区分,什么时候才有打补丁的必要。
2022-12-13 18:13:32
1142
原创 Vue渲染器(一):渲染器的设计
正如前面所说,渲染器不仅能够把虚拟DOM渲染为浏览器平台上的真实DOM。通过渲染器设计可为配置的通用渲染器,即可实现渲染到任意目标平台上。本节将以浏览器作为渲染的目标平台,编写一个渲染器。在这个过程中,可以看到哪些内容是可以抽象的,然后通过抽象,将浏览器特定的API抽离,这样就可以使得渲染器的核心不依赖于浏览器。在此基础上,为那些被抽离的API提供可配置的接口,就可以实现渲染器的跨平台能力了。我们先从渲染一个普通的标签开始。}
2022-12-12 20:13:27
785
原创 Vue响应式系统的作用与实现(三)
前面讨论了非原始值的响应式实现,接下来这节将讨论原始值的响应式实现。原始值指的是:等类型的值。在JS中,原始值是按值传递的,而非按引用传递。这意味着如果一个函数接收原始值作为参数,那么形参和实参之间没有引用关系,它们是两个完全独立的值,对形参的修改不会影响实参。另外JS中的Proxy无法提供对原始值的修改,因此想要将原始值变成响应式数据,就需要做一层包裹,vue.js里面是借助ref实现的,接下来就让我们来认识它。由于Proxy的代理目标必须是非原始值,所以我们没有任何手段拦截对原始值的操作,例如:对于这
2022-12-06 21:48:37
725
原创 Vue响应式系统的作用与实现(二)
这章主要是介绍非原始值的响应式方案。Vue3的响应式数据是基于Proxy实现的,那么我们非常有必要了解Proxy和Refelct。参考资料:阮一峰的 官方参考资料简单来说,Proxy代理对象可以拦截我们对原对象的操作,即属性值的增删改查。Reflect反射对源对象的属性进行操作。可能这样说还是有点抽象,看个简单的例子理解下:前面我们实现的响应式代码,其实有一个问题,没有用Reflect.get和Reflect.set进行读取和设置:借助一个例子来分析一下,如果不借助Reflect来进行读取和设置,会出现
2022-12-06 17:46:32
534
原创 Vue响应式系统的作用与实现(一)
Vue2的响应式实现是借助 通过重写getter和setter方法来进行的数据劫持,Vue3通过Proxy代理拦截对象中任意属性的变化,通过Reflect反射对源对象的属性进行操作。上面中的这句话应该都知道,那我们先来了解一下什么是副作用函数,以及它有什么用?它和响应式数据又有什么关系?举例:当一个函数修改了全局变量。响应式数据:当值发生变化后,副作用函数会自动重新执行。那么怎么才能让数据变成响应式数据呢?上代码前请看两个地方:上图中Set数据结构所存储的副作用函数集合我们称为 key的依赖集合。
2022-12-04 21:23:30
975
原创 基于webpack5从0搭建Vue脚手架
watch:当webpack发现有代码变换的时候,它会重新编译、重新打包。开始创建一个项目,肯定需要一个html网页,并且引入打包后的js文件。大体上是一样的,只不过vue3的api会不同,以及新建Vue实例那里。在src下创建router文件夹,并创建index.js文件。bundle.js还不存在,所以需要去安装开发依赖。“build” : 上线的时候运行构建命令。具体的写法和vue的一样,这里就不贴出来了。在使用npm安装package之前,得先。src下放的是我们的源代码。
2022-11-08 21:12:16
675
原创 7.柯里化函数
柯里化函数:部分求值。将多变量函数拆解为单变量的多个函数的依次调用。原理:利用闭包创建一个不销毁的私有域,将要保存的内容作为外部函数的变量,并且返回一个函数,然后执行这个函数。
2022-09-15 00:47:47
140
原创 数据结构复习版(5)图
1.图的基本概念: (1)有向图: (2)无向图: (3)简单图: 不存在重复边;(比如上图中顶点4到顶点1有两条边) 不存在顶点到自身的边。(环) (4)多重图:存在重复边且存在顶点到自身的边。 (5)完全图(简单完全图): 对于无向图,任意两个顶点之间都存在边。 n*(n-1) /2 对于有向图,任意两个顶点之间都存在方向相反的两条边。 n*...
2022-04-25 17:10:37
685
原创 九、ES6(2)
写在前面:Symbol这一章尚硅谷简直讲的拉跨,想念pink老师。建议去这里看阮一峰es6ES6之Symbol详解ES6之Symbol详解1.ES(EcmaScript): (1)是脚本语言的规范,平时编写的JS是EcmaScript的一种实现。ES新特性=JS新特性。 (2)ECMA:欧洲计算机制作商协会。这个协会制定了标准。 (3)ECMAScript:由ECMA-262标准化的脚本程序设计语言。2.let&&const关键字: ...
2022-04-20 13:12:00
1441
原创 九、ES6(1)
1.面向对象编程介绍: 1.1面向过程与面向对象: 面向过程是以步骤来划分问题,面向对象是以对象来划分问题。 1.2面向过程和面向对象的对比:2.ES6中的类和对象: 2.1对象:万物皆对象,特指某一个,通过类实例化一个具体的对象。 对象是由属性(特征)和方法(行为)组成的。 2.2类class:抽象了对象的公共部分,它泛指某一大类。 面向对象的思维特点: (1)抽象对象公用的属性和方法封装...
2022-04-15 20:28:29
622
原创 八、移动端:
1.移动端基础: 1.1浏览器现状: PC端常见浏览器:谷歌、火狐、QQ、百度、搜狗、IE、360浏览器。 移动端常见浏览器:UC、QQ、百度、360、谷歌等。 国内的UC和QQ,百度等手机浏览器都是根据Webkit修改过来的内核。 1.2手机屏幕现状: 1.3常见移动端屏幕尺寸:https://material.io/blog/device-metrics 1.4移动端调试方法: 总结:2.视...
2022-04-10 17:58:30
645
原创 数据结构复习版(4)树和二叉树
1.树的基本概念: n(n>=0)个结点的有限集。 空树:n=0。 只有一个直接前驱,多个直接后继。 基本术语: (1)结点的度:该结点的孩子个数。 (2)树的度:树中结点的最大度数。 (3)分支结点:度大于0。 (4)叶子结点:度为0。 (5)兄弟结点:具有相同双亲的结点。 (6)结点层次/结点深度:从树根开始定义的,根节点为第一层,它的孩子结点为第二层,以此类...
2022-03-28 12:39:46
827
原创 数据结构复习版(3)串&&矩阵的压缩存储
1.串的基本概念: 串:由零个或多个字符组成的有限序列。 S='a1a2...an' 串的长度:串中字符的个数n。 空串。 子串:串中任意个连续的字符组成的子序列。 字符在串中的位置:该字符在串中的序号。子串在主串中的位置以子串的第一个字符在主串中的位置来显示。 相等串:两个串的长度相等且每个对应位置的字符都相等。 空格串:由一个而多个空格组成的串。(与空串不同)2.串的简单模式匹配算法:模式匹配...
2022-03-21 23:24:36
472
原创 七、JS核心Web APIs:
1.Web APIs和JS基础关联性: JS的组成: (1)JS基础:ECMAScript(JS语法) (2)Web APIs:DOM(页面文档对象模型)+BOM(浏览器对象模型)。 API:给程序员提供的一种工具,以便能更轻松地实现想要完成的功能。 Web API:浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM),主要针对于浏览器做交互效果。2.DOM(文档对象类型): 2.1DOM:可拓展标记语言的标准编程接...
2022-03-18 23:10:03
898
Java总结.txt
2019-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人