在用react的時候老大不讓用jquery,為什麼?
希望大神能說下react用jquery的利弊
看我有沒有正確理解你這個問題的意思,「在用react的時候老大不讓用jquery」,是說「我們用的是React,而且老大不讓jQuery和React一起用」嗎?
React和jQuery都是做網頁的工具,他們的方式不同,但是最終產生的效果都是操作DOM,都用上了React,真的沒有必要去用jQuery了,而且兩者混用,需要特別小心(並不是說不可能混用),因為React操作的是Virtual DOM然後根據Virtual DOM來修改真正的DOM,加入,React認為Virtual DOM沒有修改,但是對應的真正DOM被jQuery修改了,那麼React也不會重繪那部分DOM,這可能不是我們想要的結果。
總之,不要給自己找麻煩把React和jQuery混用了。
老大不讓用那問老大為什麼啊,你有自己的想法可以跟他討論、爭辯啊。工作中遇到問題就應該這樣子,跟當事人說清楚講明白,直接上知乎提問並不是最有效的辦法。
完全不需要jquery,因為不再直接操作dom.如果你在干這事說明你react用的不規範。若僅僅依賴jquery的非dom相關的api社區都有替代品。
題主可能才開始接觸React,對React的開發思路還不太熟悉吧,建議再多看看相關的教程,比如組件化開發,函數式編程,狀態管理等。
這兩個庫不是一種開發思路,原則上,用了React,jQuery是沒有必要的,混在一起用,不僅增加項目代碼的體積,還會導致項目越來越臟。
jQuery主要是操作dom,尤其是在那個ie678還有一定市場份額的時候,jQuery解決了前端兼容性問題,簡化dom操作以及動畫,降低了js門檻,因此而流行的,發展到今天,jQuery已經有了屬於自己的生態,並且這個生態都依賴jQuery。而React主要提倡組件化開發,有著屬於自己的一套架構體系和開發思路,組件結構,樣式都提倡通過js的方式去描述,也有自己的狀態管理機制,瀏覽器兼容性也不是React需要考慮的範疇。如果在React使用jQuery,後面有可能接二連三的加入jQuery其他的插件,到時候代碼就失控了。其實,jQuery有的,React基本也都有了,所以jQuery不是很有必要。
當然,還有一種情況,那就是前端的鄙視鏈,哈哈。我感覺沒啥利弊定的因素吧。
不讓用的主要原因是react引入了vdom的概念。如果不使用react來操作dom的話可能會得到意料之外的結果。如果不是深入理解vdom的概念可能解決這些問題會比較複雜。
所以如果十分了解react和jq的話可以混用。但是如果不是那麼上手還是單一選型吧。祝前端水平越來越好其實你們老大的意思可能不是說不能用,而是不要打著react的旗號寫jq項目吧。我公司之前不知道誰搭的一個不小的項目,用的是ace-admin, backbone, jquery。反正當時見到是把我看吐了,瞎逼寫,打著mvc的幌子寫著jquery的。技術不咋地框架倒是一套一套的上...
你們老大的意思就是,你們要加強一下原生JS的功底了。不要太依賴框架!
——————————————————————————————————
其實現在很多人都是這個樣子
vue也要搭著jQuery用,React也要搭著jQuery用.........
究其原因,還是原生基礎薄弱造成的,一開始就沒有把基礎打好,上來就用框架,選擇一個元素不是想到用 document.getElmentById或是 querySelector 而是 $() 。js數組的原型方法map,forEach,filter沒聽過,只知道jQuery封裝的方法。
不操作DOM的話,確實沒必要用jQuery
我初淺的理解,react在更新頁面的時候是先操作自己的虛擬dom然後再對真實dom差異比較,從而進行更新;jquery是直接操作dom;思路不一樣,利用不了react的特性,來提升開發效率與應用性能
我想你老大是為了轉變你的思想吧 畢竟MVC和直接操作DOM不一樣 何況reactjs依賴的只是原生
從後端程序員角度來說說,一開始我也認為用react盡量避免用jquery,但現實有時候很酸爽。作為非專業FE,有時候也需要搭一些內部工具之類的,這時候用react開發往往會選擇一些開源的組件庫,比如antd啥的,但實際上這些組件庫或多或少都有問題,和jquery的一些插件相比,成熟度完全不能比。最近在寫一個複雜的table,變態需求,要幾百列,header要能固定在最上面,然後column能分組,然後最左側能固定,然後點擊單元格能基於行列動態生成popover。嘗試用過antd, semantic-ui的table,但最終以失敗告終。比如antd的話不能自適應寬度,另外header經常遇到錯位的情況等等。後來還是回歸到了jquey的datatables.js,基本是完美解決我的問題。當然比較酸爽的是直接操縱dom需要注意很多問題。對於擁有從零開發一個新組件的純FE來說這些問題都不是問題,但是如果只是後端程序員想寫個內部工具來用用的話,並不一定非得教條的不在react里用jquery
jquery可以直接操作DOM,而react也會根據virtual DOM去修改真正的dom,也許jquery會影響react的渲染吧
想用jquery的一些空間的時候可能會遇到混用的問題
可以在react吧dom掛載到頁面後調用jq控制項,考慮diff後重新初始化控制項問題。
早react的控制項更好,少引了個jquery。
不只不該用jquery,按照道理,應儘可能避免不通過框架直接對框架生成的dom進行操作
而jquery恰恰是一個非常優秀的dom操作簡化工具
哈哈哈,我笑一會兒再說。。。如果你維護過大型jq項目就能明白,全屏jq代碼的維護難度比react要高的多的多,尤其經過好幾輪的迭代,經歷了數個版本號後,你去維護一下前人的棄坑,保證你一整天的WTF,你老大必定體驗了不知多少次,他不想出現當你的面說出WTF,所以明令禁止你寫jq,就連jq的思維方式都要你摒棄。體諒一下老大的苦衷吧
別給自己的不思進取與懶惰找借口,React最牛B的是生態圈!