ForesightJS v4.2.0 و کامپوننت جدید Foresight
خلاصهٔ کاملتر
ForesightJS کتابخونهایه که با پیشبینی مسیر حرکت موس کاربر، منابع رو زودتر از کلیک واقعی پیشبارگذاری میکنه. تمرکز اصلی نسخه ۴.۲ رو پکیجهای React و Vueست: هردوشون دور یه کامپوننت اعلانی واحد به اسم بازچینی شدن. تا حالا برای ثبت یه لیست از عنصرها باید useForesights رو سیمکشی میکردی و با callback refها ور میرفتی؛ حالا آیتمهات رو داخل میپیچی و کارت تمومه. این کامپوننت جدید تو نسخه ۰.۳.۰ هر دو پکیج @foresightjs/react و @foresightjs/vue جایگزین useForesights برای ثبت اعلانی لیستهای پویا شده. کنارش یه باگ هم درست شده که حالا useForesight چند تا ref رو درست هندل میکنه.
زیر پوسته، خود هستهٔ js.foresight (نسخه ۴.۲.۰) هم یه دور dedup و تمیزکاری شده. مهمترین تغییرش یه تنظیم سراسری جدید به اسم dataAttributeMirroringه: mirror کردن دادهٔ ثبت روی data-* attributeهای عنصر، حالا یه بار روی خود manager کنترل میشه بهجای اینکه برای هر عنصر جدا تنظیمش کنی.
چند تغییر و رفع باگ دیگه هم اومده. حالا شمارش عنصرای active و parked بهجای اینکه جدا track بشه، از خود state مشتق میشه که همین یه دسته باگِ drift رو حذف میکنه. یه باگ درست شده که عوض کردن استراتژی لمسی به همون مقدار فعلیش، دیگه یه تغییر تنظیمات بیخودی راه نمیندازه. یه باگ دیگه هم رفع شده که handler دسکتاپ حالا positionHistorySize رو موقع init رعایت میکنه.
از نظر performance، حالا موقع اتصال handler فقط عنصرای active زیر نظر گرفته میشن و عنصرای پارکشده تا وقتی دوباره فعال نشدن، بیرون از observer میمونن. تو کارای داخلی هم مسیرهای تکراری تنظیمات، ثبت و لاگ حذف شدن و یه type صادرشدهٔ بلااستفاده به اسم HasListenersFunction هم دراومده. ابزار devtools هم برای همین تغییرات هسته آپدیت شده و نمایش data-attribute عنصرها حالا از همون تنظیم سراسری جدید dataAttributeMirroring پیروی میکنه.
نکات کلیدی:
- کامپوننت جدید جای useForesights رو برای ثبت اعلانی لیست عنصرها گرفت
- دیگه لازم نیست با callback refها کلنجار بری؛ آیتمها رو داخل کامپوننت میپیچی
- تنظیم سراسری جدید dataAttributeMirroring، mirror داده رو یهجا رو manager کنترل میکنه
- شمارش عنصرای active و parked حالا از state مشتق میشه و باگای drift حذف شدن
- موقع اتصال handler فقط عنصرای active زیر نظر میرن و پارکشدهها بیرون میمونن
- مسیرهای تکراری تنظیمات، ثبت و لاگ تو هسته حذف شدن




