当前位置: 首页 > news >正文

社区类网站建设网页设计基础知识点考试

社区类网站建设,网页设计基础知识点考试,广告产品,大二网页设计作业成品虚拟DOM与diff算法 snabbdom虚拟DOMdiff算法 snabbdom 是什么:snabbdom是著名的虚拟DOM库,是diff算法的鼻祖,Vue源码借鉴了snabbdom 虚拟DOM 是什么:本质上是存在内存里的 JavaScript 对象 作用:用来描述真实DOM的层…

虚拟DOM与diff算法

      • snabbdom
      • 虚拟DOM
      • diff算法

snabbdom

  • 是什么:snabbdom是著名的虚拟DOM库,是diff算法的鼻祖,Vue源码借鉴了snabbdom

虚拟DOM

  • 是什么:本质上是存在内存里的 JavaScript 对象

  • 作用:用来描述真实DOM的层次结构,真实DOM上的一切属性都能在虚拟DOM上找到对应的属性,并且diff算法也是作用在虚拟DOM上的

  • 怎么用(如何产生):用h函数可以生成虚拟DOM

    // 调用h函数
    h('p', {}, 'aaa');
    // 得到以下的虚拟DOM
    { "sel": "p", "data": {}, "text": "aaa" }
    // 真实DOM如下
    <p>aaa</p>
    
    • h函数代码如下

      import vnode from "./vnode";// 低配版h函数,必须接受三个参数(生成vnode)
      // 形态如下:
      /* ① h('div', {}, '文字')② h('div', {}, [])③ h('div', {}, h('div', {}, '文字'))
      */
      export default function (sel, data, c) {if (arguments.length !== 3) throw new Error("对不起,传入的参数必须为3个");if (typeof c === "string" || typeof c === "number") {// 符合第①种形态return vnode(sel, data, undefined, c, undefined)} else if (Array.isArray(c)) {// 符合第②种形态let children = [];for (let index = 0; index < c.length; index++) {const element = c[index];// 如果不是h()if (!(typeof element === "object" && element.hasOwnProperty("sel"))) {throw new Error("对不起,传入的参数有误");}children.push(element);}return vnode(sel, data, children, undefined, undefined);} else if (typeof c === "object" && c.hasOwnProperty("sel")) {// 符合第③种形态let children = [c]return vnode(sel, data, children, undefined, undefined);} else {throw new Error("对不起,传入的参数有误");}// return vnode(sel, data, children, undefined, undefined);
      }
      

diff算法

  • 是什么:一种作用于虚拟DOM上的算法

  • 作用:通过在虚拟DOM上进行精细化比较,从而达到最小量更新真实DOM的效果

  • diff算法是怎么做的

    • diff算法只在同一层进行比较,不同层的话会直接暴力删除旧的,插入新的

    • diff算法对同一个虚拟节点进行精细化比较,也就是选择器和key相同的虚拟节点。

    • diff算法的比较如下图

      在这里插入图片描述

http://www.yayakq.cn/news/142296/

相关文章:

  • 网站推广优化怎么做最好网站分页js
  • 馆陶网站建设网站建设与管理专业就业前景
  • 我想创建一个网站软件外包平台良心服务
  • 财经大学网站建设网站注册域名查询
  • 青岛网站设计流程百度词条优化工作
  • 协和医院网站建设目标网站建设及推广好做吗
  • 广州做网站lomuw网站访问次数受限
  • 表格我做视频网站做网络销售哪些网站比较好
  • 建立网站需要什么硬件微信开发者工具官网下载电脑版
  • 无锡网站建设无锡网站用户粘性
  • 济南网站建设在哪里十三五关于网站建设
  • 深圳做网站的公手机怎么开发软件app
  • 八年级做网站wordpress插件教程
  • 做房产推广那个网站好学网站建设的学校
  • 黄骅港客运站电话号码wordpress 自定义栏目
  • 车辆对比那个网站做的好长沙 php企业网站系统
  • 网站管理系统图片免费企业邮箱申请
  • 流量宝做网站流量权威发布新冠疫苗接种禁忌
  • 网站开发公司专业网站怎么做网盘
  • 网站的标题符号创办一个app需要多少钱
  • 什么叫模板网站网站建设设计ppt
  • 如何在工信部网站注册网站备案一天通过
  • 如何快速提升网站权重网址大全你懂的
  • 网站seo排名优化价格众创空间那个网站做的好
  • 做资源教程网站免费素材库视频网
  • 如何做一个静态网站怎么让网站快速收录
  • 哈尔滨的建设信息网站学校网站群建设设计
  • 做服装行业网站怎么每天更新内容哪家做的濮阳网站建设
  • 点击图片直接进入网站怎么做wordpress设置专栏
  • 学设计哪个网站好网页网站的区别