Ditty | دیتی
3.22K subscribers
190 photos
20 videos
3 files
371 links
دیتی | دنیای ساده‌شدهٔ برنامه‌نویسی وب
https://ditty.ir
Download Telegram
🔺اگه طراح صفحات وب هستین، این کد رو توی کنسول مرورگر بزنین تا همون لحظه همهٔ متن‌های توی صفحه قابل ویرایش بشن و بتونین ظاهر برنامه رو تست کنین 👌

document.designMode = "on";

#tricks
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔺توی جدیدترین نسخه VS Code می‌تونیم لیستی از همه تم‌های موجود رو داشته باشیم و بدون اینکه یک تم رو نصب کنیم، یک پیش‌نمایش از اون رو ببینیم 🤩

۱. توی VS Code دکمه‌های Ctrl + K + T رو بزنین
۲. گزینه Browse Additional Color Themes رو بزنین تا لیستی از تم‌ها براتون نمایش داده باشه
۳. پیش‌نمایش هر تمی رو که انتخاب کنین همون لحظه اعمال میشه

#tricks
This media is not supported in your browser
VIEW IN TELEGRAM
🔺ترفند: توی کنسول کروم و فایرفاکس می‌تونیم با استفاده از 0$ به آخرین المنتی که توی تب Inspect انتخاب شده دسترسی داشته باشیم
#tricks
🔥35👍226
🔺یه نکتهٔ ریز ری‌اکتی که دوست داشتم براتون به اشتراک بذارم

- همونطور که می‌دونیم وقتی توی یک کامپوننت والد تغییری رخ میده (مثلاً State بروز میشه)، باعث میشه کامپوننت‌های فرزند Re-render بشن. برای جلوگیری از این اتفاق می‌تونیم از React.memo تو کامپوننت فرزند استفاده کنیم


- کامپوننتی که از React.memo استفاده می‌کنه، فقط زمانی Re-render میشه که تغییری توی Props اون رخ بده


- حالا فرض کنیم می‌خوایم از کامپوننت والد به فرزند یک آبجکت یا یک تابع (Callback) رو پاس بدیم. اینجا حتی اگه تغییری توی این آبجکت یا تابع رخ نده، در صورت ری‌-رندر شدن کامپوننت والد، کامپوننت‌های فرزند در هر صورت (با memo یا بدون اون) ری-رندر میشن


- دلیل این اتفاق اینه که توی Re-render هایی که برای یک کامپوننت رخ میده، تمام State ها از نو ساخته میشن و بنابراین اگه یک State از نوع آبجکت داشته باشیم، اون آبجکت توی رندر اولیه کاملاً متفاوت هست با آبجکتی که توی رندرهای بعدی داریم. گرچه ممکنه تغییری توی ظاهر آبجکت رخ نده، می‌دونیم که دو آبجکت با ظاهر یکسان با هم برابر نیستن


- بنابراین اگه یک کامپوننت فرزند داره از React.memo استفاده می‌کنه و در صورتی که داریم یک آبجکت یا تابع (توابع هم نوعی آبجکت هستن) رو به اون کامپوننت پاس می‌دیم، با Re-render شدن کامپوننت والد، کامپوننت فرزند باز هم Re-render میشه. چون React.memo می‌بینه که پراپرتی‌ها با هم برابر نیستن {} ==! {}


- اینجاست که هوک‌های useCallback و useMemo به کارمون میان. این هوک‌ها تضمین می‌کنن که توی رندرهای متعدد، مقدارها و توابع ما بدون تغییر باقی می‌مونن و توی هر رندر دقیقاً همون مقدار پیشین رو برمی‌گردونن (از useRef هم میشه استفاده کرد)


- بنابراین، اگه جایی از برنامه پرفورمنس برامون اهمیت داره و به کامپوننت‌های فرزند داریم مقادیر غیر Primitive (آبجکت، آرایه، تابع کال‌بک) پاس می‌دیم، بهتره به این نکته توجه کنیم


- مثال عملی رو می‌تونید از اینجا ببینید:
https://bit.ly/3O9oTIm


پ.ن: این فقط یکی از کاربردهای useMemo هست. کاربرد اصلی اون کش کردن خروجی توابع هست.
#react #tricks
👌49👍136🔥1
می‌دونستید توی تگ <select> میشه از تگ <hr> برای جدا کردن آپشن‌ها استفاده کرد؟ 👌


<select>
<option>1</option>
<option>2</option>
<hr>
<option>3</option>
<option>4</option>
<hr>
<option>5</option>
<option>6</option>
</select>


منبع | دمو

#tricks
👍99😱4🔥3👏2👨‍💻2🤯1