非約束性
針對輸入框這種型別,你可以通過這種方式來實現(其中
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...