ru1oxn我们传统前端开发中是编写自己HTML被渲染到浏览器上那_第1页
ru1oxn我们传统前端开发中是编写自己HTML被渲染到浏览器上那_第2页
ru1oxn我们传统前端开发中是编写自己HTML被渲染到浏览器上那_第3页
ru1oxn我们传统前端开发中是编写自己HTML被渲染到浏览器上那_第4页
ru1oxn我们传统前端开发中是编写自己HTML被渲染到浏览器上那_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

n我们传统的前端开发中,我们是编写自己的HTML,

n目前框架都会引入虚拟DOM来对真实的DOMn首先是可以对真实的元素节点进行抽象,抽象成VNode(虚拟节点),这样方便后续对其进 p因为对于直接操作DOM来说是有很多的限制的,比如diff、clone等等,但是使用JavaScript编程语言来操作这p我们可以使用JavaScript来表达非常多的逻辑,而对于DOMn其次是方便实现跨平台,包括你可以将VNodep如渲染在canvas、WebGL、SSR、Native(iOS、Android)p并且Vue允许你开发属于自己的渲染器(renderer),

n事实上Vue的源码包含三 pCompilerpRuntime模块:也可以称之为RendererpReactivity

n

n这里我们实现一个简洁版的Mini-Vue框架,该Vueppp应用程 模块

n渲染系统p功能一:h函数,用于返回一个VNodep功能二:mount函数,用于将VNode挂载到DOMp功能三:patch函数,用于对两个VNode进行对比,决定如何处理新的

hnhp直接返回一个VNode

Mountnmountn第一步:根据tag,创建HTML元素,并且n第二步:处理propsp如果以on开头,那 p普通属性直接通过setAttributenp如果是字符串节点,那么直接设置p如果是数组节点,那么遍历调用mount函

Patch patch n1和n2 找到n1的el父节点,删除原来的n1节点的 挂载n2节点到n1的el n1和n2 处理props 先将新节点的props全部挂载到el 判断旧节点的props 处理children 如果新节点是一个字符串类型,那么直接调用el.textContent= 将el的textContent 就节点是一个字符串类型,那么直接遍历新节点,挂载到el 遍历所有的节点,新节点和旧节点进行path 如果新节点的length 如果旧节点的length

nObject.definedPropertyp那么Vue2需要再次调用definedProperty, 劫持的是整个对象,不需要做特殊处理np使用defineProperty时,我们修改原来的obj对象就可以触 p而使 ,就必须修 对象, 的实例才可以触 能观察的类型比defineProperty更丰富phas:inpdeleteProperty:deletep n缺点 不兼容IE,也没有polyfill,defineProperty能支持到

n这样我们就知道了,从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论