4 回答

TA貢獻1887條經(jīng)驗 獲得超5個贊
jQuery是使用選擇器($)選取DOM對象,對其進行賦值、取值、事件綁定等操作,其實和原生的HTML的區(qū)別只在于可以更方便的選取和操作DOM對象,而數(shù)據(jù)和界面是在一起的。比如需要獲取label標(biāo)簽的內(nèi)容:$("lable").val();,它還是依賴DOM元素的值。
Vue則是通過Vue對象將數(shù)據(jù)和View完全分離開來了。對數(shù)據(jù)進行操作不再需要引用相應(yīng)的DOM對象,可以說數(shù)據(jù)和View是分離的,他們通過Vue對象這個vm實現(xiàn)相互的綁定。這就是MVVM。

TA貢獻2039條經(jīng)驗 獲得超8個贊
在Vue.js中使用jquery插件需要利用ProvidePlugin導(dǎo)入jquery全局庫。1、在build/webpack.dev.conf.js和build/webpack.prod.conf.js中配置即可。2、在模塊中使用的時候代碼如下:plugins:[//這里是需要導(dǎo)入的插件列表,定意思jquery為全局參數(shù)newwebpack.ProvidePlugin({$:'jquery',jquery:'jquery','window.jQuery':'jquery',jQuery:'jquery'})]也可以使用import的這種寫法:importjQueryfrom'jQuery'ready:function(){varself=this;jQuery(window).resize(function(){self.$refs.thisherechart.drawChart();})},

TA貢獻1797條經(jīng)驗 獲得超4個贊
e 的官方是不建議直接操作 DOM 的,Vue 的用途在于視圖和數(shù)據(jù)的綁定。如果通過JQuery 直接操作 DOM 的話,勢必會造成視圖數(shù)據(jù)和模型數(shù)據(jù)的不匹配,這樣 Vue 就失去它存在的意義了。
JQuery 和 VueJS 合理使用并不會造成沖突,因為他們的側(cè)重點不同,VueJS 側(cè)重數(shù)據(jù)綁定和視圖組件,JQuery 側(cè)重異步請求和動畫效果。如果使用JQuery + VueJS 開發(fā),一定要在 Vue 渲染完所有的 HTML組件之后再通過 JQuery 處理,而使用 JQuery 時應(yīng)避免直接操作 DOM ,但是應(yīng)用動畫是允許的。
JQuery 與 VueJS 相互配合可以非常高效的完成異步任務(wù),首先通過 JQuery 發(fā)出 Ajax 請求,接受到服務(wù)端傳遞的 JSON 數(shù)據(jù)后,再通過 Vue 將數(shù)據(jù)綁定到組件上,最后由 JQuery 進行動畫處理,整個過程就如行云流水般自然。
說句題外話,Vue 的目的不是取代 JQuery,它是為了解決前后端分離而出現(xiàn)的。如果沒有數(shù)據(jù)變化,只是單純的樣式變化,則沒有必要去大費周章進行視圖模型的綁定,并且還不利于 SEO 優(yōu)化。
添加回答
舉報