Vue.js與jQuery混用


標簽: js


坑位

最近開發一個需求,項目有用到jQuery和Vue,發現我jQuery綁定的事件全部都失效了。

Why

Vue會重新渲染dom,加上是異步實例Vue.所以正常寫程序的話jq的$()獲取的元素不是vue渲染后的元素。

解決方案

  • 方案1:最徹底的方法是既然用了Vue就全部交給Vue就好了,不再引入jQuery
  • 方案2: 既然Vue接管了並重新渲染dom,那我們就等Vue真正渲染重新渲染出dom了再執行我們的jQuery事件綁定,主要代碼示例如下:
new Vue({
  el: "testId",
  mounted: function() {
    this.$nextTick(function(){
      // 在這里執行$()的dom事件綁定
      ...
    })
  }
})

方案2注意點:

  1. 針對你要通過jQuery綁定事件的元素不要使用v-if去顯示隱藏,改用v-show吧;
  1. 盡量使用jquery的事件委托機制,這樣可以針對后續生成的元素事件也做處理
  2. 事件綁定還是盡量通過@click方式來綁定吧;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM