談到這個話題首先就要說說Vue的出現,它并不是為了取代jQuery,可能接觸過Vue的朋友覺得Vue好用,入門簡單,再看官方對它的定義是一個漸進式框架,我對它的理解就是當你需要什么的時候你可以往上加沒有什么硬性要求,像Vue、react之類的這些框架,都是把對DOM的操作轉移到了操作數據和組件上面,這類框架就像一個空殼子,然后可以不斷地往里面填東西,而熟悉jQuery的朋友可能還是會奉行jq至上的理念,可以實現一些Vue不能實現的功能。
而我認為這兩者并不沖突,雖然在Vue里面加上jQuery的代碼整個項目會顯得比較亂但是如果是舊的項目,本來就大量依賴jQuery,那么重構起來也比較麻煩,可以使用Vue實現一些新的功能,舊的jQuery部分讓其保留,而如果是新的技術選型為Vue的項目,那么肯定是能用Vue實現的就不去用jQuery盡量讓整個項目看起來比較舒服,并且如果直接用jQuery操作DOM,大概率會造成數據不匹配問題,這時候就應該了解下jQuery的側重點。如果使用jQuery來進行數據請求和動畫效果的實現和Vue就不會沖突而是較好的過渡。
舉個例子,假如有一個管理系統需要維護,那么頁面上少不了大量的form請求和數據展示,當用戶不斷操作改變頁面上內容的時候,Vue的核心虛擬DOM不會立即操作DOM,而是將這些更新的diff內容保存到本地一個JS對象中,最終將這個JS對象一次性attch到DOM樹上,再進行后續操作,這樣的好處是不會對真實的DOM進行太多操作,反觀jQuery,它的任何操作都是去直接操作真實DOM,第一次用戶操作改變了DOM結構后,緊接著下一個DOM更新請求又來了,反復的計算操作DOM就是浪費性能。所以在這種情況下如果要結合jQuery使用那么從性能方面考慮不妨讓 jQuery負責數據請求就好。