τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Η λειτουργία anti-shake είναι στην πραγματικότητα μια απαραίτητη ικανότητα για έναν μαθητή στο μπροστινό μέρος. Πρόσφατα, αναπτύσσω μια μικροεφαρμογή WeChat Η υπερβολική φόρτωση θα φέρει μια κακή εμπειρία. Επομένως, πολλαπλά διαδοχικά κλικ θα προκαλέσουν πολλές φορές κοπή της σελίδας, επομένως πρέπει να χρησιμοποιήσουμε τη λειτουργία anti-shake για να το πετύχουμε.
Χωρίς περαιτέρω καθυστέρηση, ας πάμε κατευθείαν στον κώδικα.
/* 防抖函数封装 */
let timer
export const debounce = (fn, delay = 500) => {
return (...args) => { // 传入形参!!!
let that = this
timer && clearTimeout(timer)
timer = setTimeout(function () {
console.log("防抖函数执行", args)
fn.apply(that, args) // 用apply指向调用debounce的对象,相当于this.fn(args);
}, delay)
}
}
Έχω δει επίσης πολλές ενθυλακωμένες συναρτήσεις γραμμένες από άλλους μαθητές, είτε δεν δέχονται επίσημες παραμέτρους, με αποτέλεσμα εξωτερικές παραμέτρους που δεν μπορούν να ληφθούν στη συνάρτηση αντικραδασμικής λειτουργίας, είτε ο ορισμός του χρονοδιακόπτη ρίχνεται στη συνάρτηση, προκαλώντας την επανεκκίνηση της. Κάθε φορά που κάνω κλικ Ορίστε ένα χρονόμετρο, αλλά δεν επιτυγχάνεται ο σκοπός της εκκαθάρισης του χρονοδιακόπτη.
export function goPage(url) {
debounce((url) => {
url && wx.navigateTo({ url })
})(url)
}
// 页面调用
goPage('.pages/home/index')
gotoShop(value) {
debounce((value) => {
// 接收外部传来的value参数,进行后续逻辑处理
})(value) // 接收外围函数的参数,丢到防抖函数里,有兴趣的同学也可以了解一下闭包
},
Προς το παρόν, οι δύο παραπάνω εφαρμογές είναι οι πιο κοινές εφαρμογές, αν σας αρέσει, παρακαλώ δώστε το ένα μπράβο.