與 DOM 的差異

2019-08-14 14:29 更新

React 為了性能和跨瀏覽器的原因,實(shí)現(xiàn)了一個(gè)獨(dú)立于瀏覽器的事件和 DOM 系統(tǒng)。利用此功能,可以屏蔽掉一些瀏覽器的 DOM 的粗糙實(shí)現(xiàn)。

  • 所有 DOM 的 properties 和 attributes (包括事件處理器)應(yīng)該都是駝峰命名的,以便和標(biāo)準(zhǔn)的 JavaScript 風(fēng)格保持一致。我們故意和規(guī)范不同,因?yàn)橐?guī)范本身就不一致。然而,data-*  aria-* 屬性符合規(guī)范,應(yīng)該僅是小寫的。

  • style 屬性接收一個(gè)帶有駝峰命名風(fēng)格的 JavaScript 對象,而不是一個(gè) CSS 字符串。這與 DOM 中的 style的 JavaScript 屬性保持一致,更加有效,并且彌補(bǔ)了 XSS 安全漏洞。

  • 所有的事件對象和 W3C 規(guī)范保持一致,并且所有的事件(包括提交事件)冒泡都正確地遵循 W3C 規(guī)范。參考事件系統(tǒng)獲取更多詳細(xì)信息。

  • onChange 事件表現(xiàn)得和你想要的一樣:當(dāng)表單字段改變了,該事件就被觸發(fā),而不是等到失去焦點(diǎn)的時(shí)候。我們故意和現(xiàn)有的瀏覽器表現(xiàn)得不一致,是因?yàn)?span id="l9vxjtx" class="Apple-converted-space"> onChange 是它的行為的一個(gè)錯(cuò)誤稱呼,并且 React 依賴于此事件來實(shí)時(shí)地響應(yīng)用戶輸入。參考表單獲取更多詳細(xì)信息。

  • 表單輸入屬性,例如 value  checked,以及 textarea。這里有更多相關(guān)信息。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號