当前位置: 首页 > Web前端 > vue.js

模仿vue自己写一个响应式框架(三)——dom分析

时间:2023-03-31 22:35:14 vue.js

背景上一篇我们保证了代码没有报错,参数传入成功,但是没有实现任何逻辑。本章我们主要的工作是完成对dom的解析。在vue中,dom的高效更新和渲染是通过构建一个虚拟的dom结构来实现的。模仿这个思路,我们构建了一个超级简单的虚拟dom结构,目的是让大家看得懂。目的,本次搭建的dom结构,不考虑性能,不考虑设计,以实现功能为目的。domParser(dom解析)的基本思想:从参数el指定的节点开始,遍历解析节点,递归解析子节点,完成所有节点的解析(function(global,factory){global.Vue=factory})(this,function(options){//1.解析dom结构domParser();functiondomParser(){letel=options.el;//配置的el以'#'开头if(el.startsWith("#")){el=el.substr(1);}letapp=document.getElementById(el);letvirtualDom=document.createDocumentFragment();for(leti=0;ihello

就包含两种类型,

是元素类type,hello是文本类型,ELEMENT_NODE的值为1,TEXT_NODE的值为3。在编译时,这两种类型的解析方式不同。TEXT只需要解析文本,ELEMENT类型需要解析属性。函数编译(节点){让元素=node.cloneNode(假);for(leti=0;i解析变量---->根据绑定类型关联指令--->新建订阅者||--->双向绑定监听值变化--->值变化触发事件点此查看代码及效果参考点击其余链接查看本系列其他文章仿Vue自带手写响应式框架(一)–Vue实现todo应用模仿vue自己手写响应式框架(一)–Vue对象创建模仿vue自己手写响应式框架(三)–dom分析