React相關Dom約束性和非約束性操作

2021-08-11 12:17:28 字數 717 閱讀 7073

非約束性

針對輸入框這種型別,你可以通過這種方式來實現(其中defaultvalue就是原生dom中的value屬性)

type="text" defaultvalue="a"

ref="input"/>

獲取輸入框的值的時候,需要這樣做——即通過查詢dom,獲取dom屬性的方式來做。

var input = this.refs

.input

console.log(input.value)

這樣做,跟之前jquery的做法一樣,都是圍繞著dom來做的。缺點有兩個:

約束性

比較推薦的方式是這一種。即監控的變化,將值實時儲存到state中,直接從state中獲取值。

"text" value= onchange= />

//...省略部分**

handlechange: function(e) );

}

react或者vue都是一種基於資料驅動檢視的設計方式,定好資料和檢視的規則之後,只更改資料,不直接操作dom。操作dom的事情,交給react或者vue這個框架的**來搞定。

React 虛擬 Dom 和 diff 演算法

react將dom抽象為虛擬dom,然後通過新舊虛擬dom 這兩個物件的差異 diff演算法 最終只把變化的部分重新渲染,提高渲染效率的過程 概念講完再描述一遍 一句話 用 js 物件的形式,來表現一棵真是的 dom 樹 傳統的 diff 演算法也是一直都有的 react 通過制定大膽的策略,將 o...

相關和非相關查詢區別

相關和非相關查詢區別 求各部門人數 格式 select d.0 人數 from dept d select d.select count from emp e where e.deptno d.deptno 人數 from dept d select d.from dept d 部門 10 sele...

React中的虛擬DOM和diff演算法

react原理 我們來想一下如何實現react 第一種方案 1.state 資料 2.jsx 模板 3.資料 模板 結合,生成真實的dom 來顯示 4.state 發生改變 5.資料 模板 結合,生成真實的dom 替換原始的dom 但這種方案在第五步有著很大的效能缺陷 用新生成的dom去替換原始的d...