虛擬dom和真實dom的區(qū)別 虛擬DOM有什么缺點?
虛擬DOM有什么缺點?DOM的主要優(yōu)點是:易于使用,在使用DOM時,所有XML文檔信息都會存儲在內(nèi)存中,并且遍歷簡單,支持XPath,增強了易用性。DOM的缺點是:效率低,解析速度慢,內(nèi)存消耗大,幾乎
虛擬DOM有什么缺點?
DOM的主要優(yōu)點是:易于使用,在使用DOM時,所有XML文檔信息都會存儲在內(nèi)存中,并且遍歷簡單,支持XPath,增強了易用性。DOM的缺點是:效率低,解析速度慢,內(nèi)存消耗大,幾乎不可能用于大文件。此外,效率低下還體現(xiàn)在時間消耗上,因為使用DOM進行解析時,會為文檔的每個元素、屬性、處理指令和注釋創(chuàng)建一個對象。這樣,DOM機制中大量對象的創(chuàng)建和銷毀無疑會影響其效率。
什么屬于操作dom,為什么vue避免了dom操作?
什么是DOM操作?要回答這個問題,首先我們必須了解什么是DOM;DOM是document object model的縮寫;
然后,DOM操作是什么?例如,查找節(jié)點、添加節(jié)點、刪除節(jié)點、修改節(jié)點屬性、修改節(jié)點內(nèi)容等
至于為什么Vue避免DOM操作,其實據(jù)我了解,不是Vue避免了DOM操作,而是Vue的架構(gòu)幫助我們完成了這些操作,或者說,它通過數(shù)據(jù)更改自動驅(qū)動DOM更改。在我看來,Vue的架構(gòu)可以幫助我們完成這些操作,一般來說,我們只需要修改數(shù)據(jù),整個DOM結(jié)構(gòu)和文檔內(nèi)容就會自動完成,就像我們沒有執(zhí)行DOM操作一樣。其實不是這樣的,但是當(dāng)我們更改數(shù)據(jù)時,Vue已經(jīng)為我們完成了DOM操作;
這就是所謂的雙向綁定,數(shù)據(jù)驅(qū)動;
例如,當(dāng)我們需要更改某個元素的數(shù)據(jù)時,我們都知道“v-text=”text“是在文本值更改時直接添加到元素中的,相應(yīng)元素的含量也會發(fā)生變化。那么,它有什么作用呢?
首先,我們應(yīng)該了解“v-text”實際上是Vue中的一個指令。源代碼如下:
也就是說,將v-text綁定到元素時,我們將首先確定元素的元素類型。如果nodeType為3,即如果是文本節(jié)點,則可以通過修改其數(shù)據(jù)屬性來修改文本內(nèi)容;如果是其他節(jié)點,則可以通過修改其數(shù)據(jù)屬性來修改文本內(nèi)容,通過修改其textcontent來修改節(jié)點的值;當(dāng)值發(fā)生變化時,則這個.el[ 此.attr]=uToString(value)”修改節(jié)點的內(nèi)容;
所以,Vue沒有回避DOM操作,它也執(zhí)行DOM操作,但是包含在框架中,所以我們對它沒有明顯的感知
我今天才開始了解Vue cli 3.0。我開始寫一個演示,發(fā)現(xiàn)它是驚人的。我放棄了版本2冗長的網(wǎng)頁配置。現(xiàn)在它簡單明了,你甚至不需要寫它vue.config.js文件沒關(guān)系。它是免費的。不管怎樣,它是無害的。但是如果你配置它,你會發(fā)現(xiàn)它并不麻煩。
據(jù)我所知,不應(yīng)該有任何支架可以更快、更直接地反映數(shù)組或?qū)ο蟮淖兓?/p>
另外,語法糖基本上沒什么變化。過去怎么用還是現(xiàn)在怎么用,但是有很多性能優(yōu)化和語法糖分。說真的,我根本找不到vue-cli3.0的致命漏洞。
然后,我還看到人們?yōu)镴Q反對不公正。一年半前,我用JQ寫作。當(dāng)時,我認為JQ是JS的最佳框架。太方便了,DOM的操作也太酷了。直到我寫了一張課程安排項目卡。。。
然后我轉(zhuǎn)向一個小程序,發(fā)現(xiàn)小程序的編寫方法是Vue。。。尤其是組件的編寫方式。。。
畢竟,要消除Vue有點困難。畢竟,這個時代是數(shù)據(jù)操作的時代,而不是DOM操作的時代。
最后,我不認為您應(yīng)該堅持前端框架。即使將來會有更高級的框架,JS仍然是最好的。在這個框架中,我真的想不出還有什么可以玩的了。也許es會逐漸引用這些框架,然后變得如此。例如,當(dāng)您想到JS時,您可以編寫類來繼承嗎?我第一次看到它的時候,我以為它是Java。。。但現(xiàn)在我支持。。。
那為什么不關(guān)注后端呢?所有節(jié)點都熟練嗎?你知道迪諾嗎?PHP開始了嗎?那蟒蛇呢?我相信這些語言將來會逐漸出現(xiàn)在前端知識點(雖然PHP已經(jīng)出現(xiàn)了,但我覺得太多了。據(jù)說好的PHP是世界上最好的語言。。。)
Vue被淘汰了嗎?
Vscode直接使用DOM API而不是前端框架,原因如下:
綜上所述,使用DOM API開發(fā)Vscode是微軟團隊的正確選擇,而前端框架并不是開發(fā)Vscode的最佳選擇。
vscode為什么選擇直接使用DOM API而不借助現(xiàn)有的前端框架來進行開發(fā)?
。
前端開發(fā)也是如此。實際上,我們都使用jQuery。它簡單而粗糙,并且很容易直接操作界面。如果你想實現(xiàn)任何功能,你會成功的。但是在項目變得越來越復(fù)雜之后,這種開發(fā)方式會出現(xiàn)一個問題:代碼組織很低,項目的可維護性很差,特別是當(dāng)項目中的很多頁面都有層次關(guān)系時,很容易混淆自己。
“.現(xiàn)在我們不應(yīng)該把一個網(wǎng)頁看作一個網(wǎng)頁,而是一個以網(wǎng)頁的形式呈現(xiàn)的應(yīng)用程序。分離數(shù)據(jù)和行為之后,前端開發(fā)變得更加清晰,這也是前端開發(fā)的一個重要標(biāo)志。
雖然這些框架使用了虛擬DOM等技術(shù),但由于抽象合理,開發(fā)效率遠高于傳統(tǒng)前端,比直接操作DOM要慢。試想一下,用這兩種方法開發(fā)的項目效率比傳統(tǒng)開發(fā)低0.5%,但是傳統(tǒng)開發(fā)需要的bug是傳統(tǒng)開發(fā)的兩倍。如果你是,你會選哪一個?