美文网首页
第二章 HTML解析器

第二章 HTML解析器

作者: Luigi_Lin | 来源:发表于2019-06-02 22:39 被阅读0次

  本来是想写一篇超详细,跟着一步一步做就能搞出一个简单框架的笔记的。但写了一半变化检测才发现太难了,因为一个程序总是在一步一步解决问题的过程写出来的,想要每步按顺序写出来并加以解释太累了。只能是摘要说明了。

  为了将DOM和数据绑定在一起,我们需要将HTML模板解析成AST,然后再根据AST生成渲染函数。最后通过渲染函数渲染出整个页面。本章讲的就是将模板解析成AST的过程。即将:

<div>
  <span>{{message}}</span>
</div>

编译成类似以下对象

{
    type: 1,
    tag: "div",
    attrsList: [],
    attrsMap: {},
    children: [
        {
            type: 1,
            tag: "span",
            attrsList: [],
            attrsMap: {},
            parent: {tag:"div"...},
            children: [],
            text: "{{message}}",
            expression: "_s(message)",
            hasBindings: false
        }
    ],
    text: "\n        ",
    expression: null,
    hasBindings: false
}

  Vue的解析是采用正则进行匹配的方式,但因为正则表达式实在太反人类了,我即写不出也理解不了,所以我选择用逐个字符读出来的方式来实现解析。通过遍历模板字符串,当遇到关键的字符则交给对应的函数进行处理,类似状态机的形式:


image.png

TO BE CONTINUED

相关文章

  • 重绘和重排(回流)

    一、浏览器渲染HTML的步骤 HTML被HTML解析器解析成DOM Tree, CSS则被CSS解析器解析成CSS...

  • 虚拟DOM是啥?

    一、浏览器渲染HTML的步骤 HTML被HTML解析器解析成DOM Tree, CSS则被CSS解析器解析成CSS...

  • 第二章 HTML解析器

      本来是想写一篇超详细,跟着一步一步做就能搞出一个简单框架的笔记的。但写了一半变化检测才发现太难了,因为一个程序...

  • HTML&XML解析器--Jsoup

    HTML&XML解析器 一.Jsoup概述 Jsoup简介jsoup是一款Java的HTML解析器,可直接解析某个...

  • 网页渲染流程

    首先是网页内容,输入到HTML解析器,HTML解析器解析,然后构建DOM树,在这期间如果遇到JavaScript代...

  • 浏览器渲染机制、重绘、重排

    网页生成的过程 HTML解析器会将html解析成DOM树 CSS解析器会将css解析成CSSOM树 结合DOM树和...

  • LeetCode | 1410. HTML Entity Par

    LeetCode 1410. HTML Entity Parser HTML 实体解析器【Medium】【Pyth...

  • 2021-12-10 js中的v8 引擎

    编译型语言和解释性语言 网页渲染过程: 过程 - 首先是网页内容,输入到HTML解析器,HTML解析器解析,然后构...

  • Beautiful Soup库入门

    Beautiful Soup库解析器 soup = BeautifulSoup(' data ','html.pa...

  • 记一次jsoup的使用

    Jsoup是用于解析HTML,就类似XML解析器用于解析XML。 Jsoup它解析HTML成为真实世界的HTML。...

网友评论

      本文标题:第二章 HTML解析器

      本文链接:https://www.haomeiwen.com/subject/eaexzqtx.html