[Day20] - Vue 的 Html 字串处理 ( Html String to Ast Object )

day-13 介绍 , 当资料改变时 , 我们可以利用 _render 来更新 dom

可是如果每次资料改变时 , 都需要 rootDiv.innerHTML 来重新设定整个 dom ,

当 Vue component 很多层时 , 资料一有变化 , 就需要等很久 ,

因此我们需要有 Virtual Dom ( Ast Object ) 用於比对变化 ,

再针对变化的部分 , 去更新对应的 element 即可 , 这样在 render 时 , 也许可以加快速度

那在开始之前 , 我们先更深入了解一下 Html Element 吧 !

Html Element 的类型

Html Element 目前有 6 种类型

  • void elements : 没有 end tag 的元素 ( ex : <input> . <br> ... )
  • template element : <template> 用於放一些 HTML template , 不显示在画面中
  • raw text elements : 在 HTML 档案中 , 处理 JS . CSS 部分的元素 ( <script> . <style> )
  • escapable raw text elements : textarea, title
  • foreign elements : MathML namespace and the SVG namespace
  • normal elements : 上述以外的 element

建立转换函式 parse

所有的 HTML 结构的开头都是 <xxx> 而且结尾都是 </xxx>

我们可以利用这个来解析 HTML string

var tagRE = /<[a-zA-Z\-\!\/](?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])*>/g

抓出 tag name 後 , 就可以

---今晚跟朋友吃饭 , 待处理

参考资料


<<:  Day#09 使用者体验

>>:  简报版-第二章-从ATM提款与刷卡看资安

Day [1] — this:存在於物件 — JS之浸猪笼系列

太想要放梗图ㄌ..... this = 这个。 如果对this的理解到这里,很棒 您跟我一样完全看...

D-8. Rails 用Postman测试自己的WEB API && Valid Parentheses

请先安装Postman 今天完成整个CRUD,简单介绍操作Postman。 接续昨天文章 9.修改r...

【28】遇到不平衡资料(Imbalanced Data) 时 使用 Oversampling 解决实验

Colab连结 昨天我们使用了降低多数样本 Undersampling 的方式来解决少数样本的问题,...

Android学习笔记19

今天建立了dialog的viewmodel去实作原本的动作 class Dvm(applicatio...

Day21 - _ document 可以做什麽呢?

_document 可以做什麽呢? Next.js 除了 _app.tsx 之外,还提供另外一个 _...