91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Vue中封裝一個節流函數

發布時間:2021-04-09 17:33:20 來源:億速云 閱讀:437 作者:Leah 欄目:web開發

今天就跟大家聊聊有關怎么在Vue中封裝一個節流函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

function throttle (method, context) {
  clearTimeout((method.tId))
  method.tId = setTimeout(function () {
   method.call(context)
  }, 100)
 }

 function resizeDiv () {
  var div = document.getElementById('myDiv')
  div.style.height = div.offsetWidth + 'px'
 }

 window.onresize = function () {
  throttle(resizeDiv)
 }

這個就是很典型的函數節流的應用,不多解釋,本文通過vue的自定義指令封裝類似的方法.

 <template>
 <div>
  <input
   type="text"
   v-model="text"
   v-debounce="search"
  >
 </div>
</template>
<script>
 export default {
  name: 'debounce',
  data () {
   return {
    msg: 'Welcome to Your Vue.js App',
    text: '',
    count: 1
   }
  },
  directives: {
   debounce: {
    inserted: function (el, binding) {
     let timer
     el.addEventListener('keyup', () => {
      if (timer) {
       clearTimeout(timer)
      }
      timer = setTimeout(() => {
       binding.value()
      }, 300)
     })
    }
   }
  },
  methods: {
   search () {
   // 實際要進行的操作 axios.get('')之類的
    this.count++
    console.log('count is:' + this.count)
   }
  }
 }
</script>

以上代碼實現了一個實時搜索類的函數節流,通過vue自定義指令v-debounce實現.原本,如果我們想做一個實施搜索,那么會直接用@keyup=search,這樣就會非常耗性能,鍵盤敲一下,就會調用一次search事件,如果是ajax請求,那么會非常不友好,所以通過v-debounce,則可以在鍵盤連續敲擊的時候組織運行,停留300毫秒才執行.

通過vue的自定義指令,還可以將其掛載在全局,那樣就能全局通過v-debounce調用了.這個比傳統方法簡單很多,不需要call,apply之類的.

關鍵點:vue 的自定義指令傳遞的參數binding 如果是一個函數,則通過binding.value()來執行,通過上述示例,還可以傳遞比如事件, 綁定對象之類的,上例綁定的是el, keyup事件,這些也可以通過binding傳遞,通過vue的自定義指令,可以簡化很多重復代碼,并且邏輯更加清晰

看完上述內容,你們對怎么在Vue中封裝一個節流函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

泰顺县| 德州市| 扎鲁特旗| 宝应县| 富阳市| 涿州市| 四子王旗| 玛纳斯县| 抚宁县| 金沙县| 鹤山市| 乡宁县| 调兵山市| 紫云| 宜章县| 睢宁县| 大方县| 仙游县| 清水县| 湖口县| 蕲春县| 岚皋县| 繁峙县| 玉田县| 德化县| 当涂县| 庆云县| 繁昌县| 达拉特旗| 青冈县| 海林市| 珲春市| 老河口市| 西贡区| 南华县| 革吉县| 烟台市| 彰化县| 大理市| 车致| 孟津县|