摘要:
上一节到了parseHTML函数,该函数接受一个字符串与一个对象,字符串即对应的DOM,对象包含几个字符串匹配集及3个长函数。 简略梳理部分函数代码如下: 函数比较长,除去开头的参数获取,后面直接用while循环开始对字符串进行切割。 在判断标签不是script,style,textarea三个特殊 阅读全文
摘要:
上一节获取到了DOM树的字符串,准备进入compile阶段: 该函数接受两个参数,DOM树字符串、配置参数,如图:,进函数: compile主要做了3件事: 1、参数合并 这里涉及到baseOptions与传进来的options,baseOptions是内置对象,与options合并后得到final 阅读全文
摘要:
讲完了数据劫持原理和一堆初始化 现在是DOM相关的代码了 上一节是从这个函数开始的: 弄完data属性的数据绑定后,开始处理el属性,也就是挂载的DOM节点,这里的vm.$options.el也就是传进去的'#app'字符串。 有一个值得注意的点是,源码中有2个$mount函数都是Vue$3的原型函 阅读全文
摘要:
开播了开播了! vue通过数据劫持来达到监听和操作DOM更新,上一节简述了数组变化是如何监听的,这一节先讲讲对象属性是如何劫持的。 上一节说到这里,现在进入defineReactive$$1来看看具体的劫持过程,函数比较长。 函数接受4个参数,分别为数据对象、键、值、默认设置,由于这里只传了3个,先 阅读全文
摘要:
写了一半关机了,又得重新写,好气。 上一节讲到initData函数,其中包含格式化、代理、监听。 这一节重点开始跑observe函数,该函数接受2个参数,一个是数据,一个布尔值,代表是否是顶层根数据。 observe函数除去大量的判断,关键部分就是new了一个观察者来进行数据监听,所以直接跳进该构造 阅读全文
摘要:
接着第一节开始继续吧(GoGoGo) 上一节把mergeOptions函数弄完了,最后返回一个options赋给了vm.$options。 这一节继续跑代码: 剩余的代码主要有3件事:initProxy()、各种初始化函数、挂载vue。 在讲initProxy()之前,有必要先讲讲这个奇怪的注释:/ 阅读全文
摘要:
搞事!搞事! 从最简单的案例开始,摘抄官网的起步: 打断点,开始执行! 初始化函数 html代码中,包含2大部分,挂载DOM节点,以及初始化vue的js代码。 有几个小地方,虽然按照官网的案例不会出现问题,但是还是说明一下: (1)、el不能挂载到html或者body标签上 (2)、关于代码各处可见 阅读全文
摘要:
JS中获取DOM节点的类有3种方法: 1、classList H5的方法,仅兼容IE10+,配套带有remove等api 2、getAttribute('class') 据说在低版本IE有兼容问题,建议用方法3 3、className 这个方法万能 其实要讲的是看到vue源码里面的一个方法,兼容IE 阅读全文
摘要:
真是掉进了一个史无前例的坑 --ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。 这是百科的介绍,简单来讲,这就是一个地图,可以搞事情。 学的是ArcGIS API for JavaScript,网址是:https://developers.arcgis.com/javascript/。 阅读全文
摘要:
最近无聊,又开始刷书,写写《高性能JavaScript》读后感吧! 1、脚本加载 脚本加载会阻塞其他文件下载,页面会等到所有JavaScript代码下载并执行完成才能继续 解决方法:(1)、建议将script标签放在body底部,确保脚本执行前页面已完成渲染 (2)、可以将某些脚本直接写在scrip 阅读全文