vue2 中 template 转换成 ast 过程简介

本文简要探讨Vue2中template转化为抽象语法树(AST)的过程,涉及vue的parse阶段。通过了解html parser,如simplehtmlparser,解析HTML模板,从前向后匹配标签、属性等,并触发回调。AST的生成涉及栈操作,提供了一道算法实践题目。
摘要由CSDN通过智能技术生成

这篇文章主要简单介绍 template 转换成 ast 的过程,也就是 vue 中 parse 的过程。

假设 template 模版为

const template = `<div>
    <div style='color: red'>{
   {count}}</div>
    <button @click="addCount">addCount</button>
</div>`

首先要了解一下 html parser,vue 中的 parseHTML 是从 simplehtmlparser 修改来的,simplehtmlparser 代码链接:http://erik.eae.net/simplehtmlparser/simplehtmlparser.js

parseHTML 过程其实就是从前向后的字符串匹配过程。html parser 的主要思想如下,从前向后匹配出 html 标签名称、属性、文本节点内容、注释等等,触发对应的回调函数,其中 s 是输入的字符串模版,contentHandler 是匹配到内容后执行的回调函数。

function parseHTML(s, contentHandler) {
    while (s.length > 0) {
        // Comment
        if (s.substring(0, 4) == "<!--") {
            index = s.indexOf("-->");
            i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值