亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


dom 中的 nodeType 節(jié)點(diǎn)類型

 
 

前言

看到 vue AST 抽象語法樹中有這樣的定義:

dom 中的 nodeType 節(jié)點(diǎn)類型
 
中間根據(jù)的 child.type 難道是隨意定義的嗎?我不敢瞎揣測,不過既然是對 document 樹的解析,那必然會和 document 扯上關(guān)系。

這時我嘗試在 F12 中輸出 document 看到了 nodeType 屬性和這個 child.type 相似。

個人認(rèn)為可能有所關(guān)系,不過不重要,因?yàn)檫@篇主要講 document 中的 nodeType 節(jié)點(diǎn)類型。

nodeType 的分類

我在 MDN 上搜索 nodeType ,看到如下表格:

dom 中的 nodeType 節(jié)點(diǎn)類型
 
當(dāng)然還有一些類型已經(jīng)廢棄,這里不再列舉。

通過 nodeType 來定義我們 document 上節(jié)點(diǎn)的節(jié)點(diǎn)類型,通過代碼,你講看到具體的輸出:

這是一段很簡單的 html 文件:

dom 中的 nodeType 節(jié)點(diǎn)類型
 
然后我簡單定義了個工具方法,示意 nodeType :
 
dom 中的 nodeType 節(jié)點(diǎn)類型
 
為了使得全部的節(jié)點(diǎn)類型輸出順利,我單獨(dú)針對部分類型處理:
 
dom 中的 nodeType 節(jié)點(diǎn)類型
 
然后是常規(guī)的 html 元素:
 
dom 中的 nodeType 節(jié)點(diǎn)類型
 
 

回過頭看 vue

為什么 vue 中的 type 屬性只出現(xiàn)了 2、3 (默認(rèn) 1)?

如果你熟悉其中的 parseHTML 方法,如下應(yīng)該就是其答案:
 

dom 中的 nodeType 節(jié)點(diǎn)類型
 

首先在對 html 解析時,會優(yōu)先對 注釋(COMMENT_NODE,CDATA_SECTION_NODE) 、文檔類型(DOCUMENT_NODE, DOCUMENT_TYPE_NODE) 進(jìn)行判斷;另外 vue 本身就是虛擬 Dom 機(jī)制,所以也就不需要 DOCUMENT_FRAGMENT_NODE 。

最后只要匹配 ELEMENT_NODE 和 TEXT_NODE 類型即可(值為 1,3)。

我們知道 innerHtml 會有 雙大括號 表達(dá)式,vue 就空出 2 專門用來對表達(dá)式解析。

總結(jié)

我只是看 vue 渲染代碼時,好奇為什么 type 是這樣的取值方式。也許是錯的,不過希望各位對 nodeType 這個 document 上的屬性有所認(rèn)識。

分享到:
標(biāo)簽:dom
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定