在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 面試題,react和jquery操作dom的區(qū)別,為什么react框架里面不建議

面試題,react和jquery操作dom的區(qū)別,為什么react框架里面不建議使用jquery

react和jquery操作dom的區(qū)別,為什么react框架里面不建議使用jquery

回答
編輯回答
笨尐豬

操作dom成本太高,性能也不好,所以才會(huì)有主流框架的虛擬dom,它不是操作dom,而是通過(guò)diff算法,先創(chuàng)建虛擬dom,然后當(dāng)監(jiān)測(cè)到有數(shù)據(jù)變化的時(shí)候,執(zhí)行diff算法,以最小成本渲染dom。
如果你想知道得更多,建議去深究一下虛擬dom以及diff算法。

2018年5月25日 14:39
編輯回答
近義詞

jQuery 是基于 Dom 的,React 為數(shù)據(jù)驅(qū)動(dòng):https://segmentfault.com/q/10...

2017年3月1日 09:03
編輯回答
短嘆

兩種前端框架的誕生年代不同。核心算法也不一樣。。jquery主張采用頻繁的操作dom。react。vue等框架采用的是虛擬dom。主要以數(shù)據(jù)來(lái)驅(qū)動(dòng)。

2017年12月17日 22:39
編輯回答
無(wú)標(biāo)題

因?yàn)閞eact是虛擬dom而,jq是操作dom

2018年2月6日 08:19
編輯回答
涼汐

我就說(shuō)兩點(diǎn)吧。

第一,思想不一樣。react是基于數(shù)據(jù)驅(qū)動(dòng)的, 也就是說(shuō)數(shù)據(jù)決定dom。 因此如果使用jquery的思想直接操作DOM的話,違背了這個(gè)思想。

第二,兩者共存可能會(huì)有意想不到的問(wèn)題。 假定有這么一種場(chǎng)景:

react的A組件,

function A(props) {
    return <div><div id="jq">我會(huì)被jquery操作</div>{props.count}</div>
}

A組件props現(xiàn)在是{count: 1}, 然后你使用jq將id為jq的元素修改了。
然后props變?yōu)閧count: 2}, react重新渲染,你會(huì)發(fā)現(xiàn)id為jq的元素恢復(fù)到以前的狀態(tài)了。

解決方式拆一個(gè)jq組件出來(lái),并使用shouldComponentUpdate 返回false, 將組件變成不會(huì)更新的組件

因此不建議在react等數(shù)據(jù)驅(qū)動(dòng)的框架中做dom操作。

2017年6月15日 12:36
編輯回答
冷咖啡

用過(guò)react的基本上都不會(huì)用上jq。
之前有個(gè)面試官問(wèn):你用jq嗎?
我:我用react,不用jq。
面試官:怎么會(huì)有人不用jq。
我:我用react,不用jq。
面試官:好吧,今天就這樣了,你可以先走了。

2018年6月27日 02:00
編輯回答
雨萌萌

題主應(yīng)該是剛開(kāi)始入門(mén)react, react說(shuō)白了不操作dom,改操作數(shù)據(jù)了(狀態(tài)),說(shuō)白了react是通過(guò)操作數(shù)據(jù)(狀態(tài))來(lái)使頁(yè)面渲染的。

我們以前使用jquery操作dom,最多的操作就是給dom里塞入數(shù)據(jù)來(lái)達(dá)到局部刷新的效果,但是操作dom是很耗性能的。

2018年5月3日 03:35