افزایش پرفورمنس وب اپلیکیشنهای ویو با دایرکتیو v-momo
این دایرکتیو (directive) جدید که از نسخه ۳.۲ به ویو اضافه شده از رندرهای اضافی کامپوننتها و المنتهای HTML و تمامی subtreeهای اونها در ویو جلوگیری میکنه.
شما باید این دایرکتیو رو با یک آرایه با طول ثابت مقداردهی کنید و هر موقع که هر کدوم از آیتمهای داخل این آرایه تغییر کنه، کامپوننت یا المنت مربوطه هم دوباره رندر میشه اما اگر ثابت بمونه، اون کامپوننت و یا المنت و subtreeهای داخلش دوباره رندر نمیشن
در واقع قدرت واقعی این دایرکتیو اونجایی مشخص میشه که شما یک لیست بزرگ یا حجم زیادی از کامپوننتهایی دارید که با یک تغییر، همشون دوباره رندر میشن و خب این اصلا جالب نیست.
نحوه استفاده از این دایرکتیو خیلی ساده هست:
<div v-memo="[valueA, valueB]">
...
</div>
برای اطلاعات کاملتر و همینطور نحوه استفاده از این دایرکتیو در کنار v-for به لینک زیر مراجعه کنید:
https://v3.vuejs.org/api/directives.html
#نویسنده : #محمد_صالح_فدایی
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #v_memo #tips
این دایرکتیو (directive) جدید که از نسخه ۳.۲ به ویو اضافه شده از رندرهای اضافی کامپوننتها و المنتهای HTML و تمامی subtreeهای اونها در ویو جلوگیری میکنه.
شما باید این دایرکتیو رو با یک آرایه با طول ثابت مقداردهی کنید و هر موقع که هر کدوم از آیتمهای داخل این آرایه تغییر کنه، کامپوننت یا المنت مربوطه هم دوباره رندر میشه اما اگر ثابت بمونه، اون کامپوننت و یا المنت و subtreeهای داخلش دوباره رندر نمیشن
در واقع قدرت واقعی این دایرکتیو اونجایی مشخص میشه که شما یک لیست بزرگ یا حجم زیادی از کامپوننتهایی دارید که با یک تغییر، همشون دوباره رندر میشن و خب این اصلا جالب نیست.
نحوه استفاده از این دایرکتیو خیلی ساده هست:
<div v-memo="[valueA, valueB]">
...
</div>
برای اطلاعات کاملتر و همینطور نحوه استفاده از این دایرکتیو در کنار v-for به لینک زیر مراجعه کنید:
https://v3.vuejs.org/api/directives.html
#نویسنده : #محمد_صالح_فدایی
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #v_memo #tips
استفاده از watch برای مشاهده تغییرات دو (یا چند) property در option API
با کمک یک computed property، که یک آبجکت شامل متغیرهای مورد نظرتون رو برمیگردونه، میتونید از یک watch برای مشاهده تغییرات در دو (یا چند) متغیر استفاده کنید.
استفاده از این روش علاوه بر مزیت ذکر شده، خوانایی کدهاتون رو هم افزایش میده.
پی نوشت: در composition API، بدون کمک گرفتن از computed میتونید تغییرات چندین property رو به صورت همزمان مشاهده کنید.
نویسنده: #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips #watch
با کمک یک computed property، که یک آبجکت شامل متغیرهای مورد نظرتون رو برمیگردونه، میتونید از یک watch برای مشاهده تغییرات در دو (یا چند) متغیر استفاده کنید.
استفاده از این روش علاوه بر مزیت ذکر شده، خوانایی کدهاتون رو هم افزایش میده.
پی نوشت: در composition API، بدون کمک گرفتن از computed میتونید تغییرات چندین property رو به صورت همزمان مشاهده کنید.
نویسنده: #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips #watch
اجرای دستی همه effectهای وابسته به shallowRef
همونطور که میدونین، هر وقت یک ref آپدیت میشه تمامی watchها، computedها و... وابسته به اون دوباره اجرا میشن تا تمامی stateهای مرتبط به صورت دومینو وار آپدیت بشن (به این وابستگیها میگن effects).
اما زمانی که از shallowRef استفاده بشه، هر زمان یکی از propertyهای داخلی آبجکت مربوط بهش تغییر کنه، هیچ افکتی دوباره اجرا نمیشه. دلیل این امر اینه که از shallowRef استفاده شده و propertyهای داخلی reactive نیستن و با تغییرشون هیچ effectی اجرا نمیشه.
اگر بخواید که این effectها دوباره اجرا بشن، باید اونها رو به صورت دستی و توسط triggerRef دوباره اجرا کنید.
پینوشت: triggerRef رو هم میشه با ref استفاده کرده اما نیازی به اینکار نیست و ویو به طور خودکار تمامی effectهای مرتبط رو براتون دوباره اجرا میکنه.
Reference:
https://v3.vuejs.org/api/refs-api.html#triggerref
نویسنده #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips
همونطور که میدونین، هر وقت یک ref آپدیت میشه تمامی watchها، computedها و... وابسته به اون دوباره اجرا میشن تا تمامی stateهای مرتبط به صورت دومینو وار آپدیت بشن (به این وابستگیها میگن effects).
اما زمانی که از shallowRef استفاده بشه، هر زمان یکی از propertyهای داخلی آبجکت مربوط بهش تغییر کنه، هیچ افکتی دوباره اجرا نمیشه. دلیل این امر اینه که از shallowRef استفاده شده و propertyهای داخلی reactive نیستن و با تغییرشون هیچ effectی اجرا نمیشه.
اگر بخواید که این effectها دوباره اجرا بشن، باید اونها رو به صورت دستی و توسط triggerRef دوباره اجرا کنید.
پینوشت: triggerRef رو هم میشه با ref استفاده کرده اما نیازی به اینکار نیست و ویو به طور خودکار تمامی effectهای مرتبط رو براتون دوباره اجرا میکنه.
Reference:
https://v3.vuejs.org/api/refs-api.html#triggerref
نویسنده #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips
متوقف کردن اجرای watch و watchEffect در Composition API
جالبه بدونین که watch و watchEffect یک تابع به عنوان تابع متوقف کننده برمیگردونن. تنها کافیه این تابع رو فراخوانی کنید تا watcher مورد استفاده متوقف بشه و بعد هر تغییر اجرا نشه.
Reference:
https://v3.vuejs.org/guide/reactivity-computed-watchers.html#stopping-the-watcher
نویسنده: #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips #watch
جالبه بدونین که watch و watchEffect یک تابع به عنوان تابع متوقف کننده برمیگردونن. تنها کافیه این تابع رو فراخوانی کنید تا watcher مورد استفاده متوقف بشه و بعد هر تغییر اجرا نشه.
Reference:
https://v3.vuejs.org/guide/reactivity-computed-watchers.html#stopping-the-watcher
نویسنده: #محمد_صالح_فدایی
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips #watch
🔸Reactivity Transform
با اضافه شدن Composition API در Vue 3 هنگامی که شما با Reactivity API کار میکنید برای دسترسی به مقادیر باید حتما .value به متغییر خودتون اضافه کنید تا به مقدارداخل متغییر دسترسی داشته باشید .
در ورژن 3.2.25 به صورت آزمایشی Reactivity Transform اضافه شده که به صورت پیش فرض غیرفعال هست و شما میتونید دستی خودتون اون رو فعال کنید .
اما Reactivity Transform چه کمکی به ما میکنه ؟ خیلی ساده بخوام بگم از این به بعد دیگه نیاز نیست که شما .value رو اضافه کنید و خود vue هنگام کامپایل کردن این کار رو برای شما انجام میده. فقط کافیه هنگام کارکردن با Reactivity API ها به اول آن ها $ اضافه کنید.
البته توابع دیگه ای هم داره که میتونید از طریق لینک زیر و داکیومنت خود Vue بیشتر با اون ها آشنا بشید و نحوه فعال سازی این قابلیت رو نسبت به باندلر خودتون پیدا کنید.
https://vuejs.org/guide/extras/reactivity-transform.html
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips
با اضافه شدن Composition API در Vue 3 هنگامی که شما با Reactivity API کار میکنید برای دسترسی به مقادیر باید حتما .value به متغییر خودتون اضافه کنید تا به مقدارداخل متغییر دسترسی داشته باشید .
در ورژن 3.2.25 به صورت آزمایشی Reactivity Transform اضافه شده که به صورت پیش فرض غیرفعال هست و شما میتونید دستی خودتون اون رو فعال کنید .
اما Reactivity Transform چه کمکی به ما میکنه ؟ خیلی ساده بخوام بگم از این به بعد دیگه نیاز نیست که شما .value رو اضافه کنید و خود vue هنگام کامپایل کردن این کار رو برای شما انجام میده. فقط کافیه هنگام کارکردن با Reactivity API ها به اول آن ها $ اضافه کنید.
البته توابع دیگه ای هم داره که میتونید از طریق لینک زیر و داکیومنت خود Vue بیشتر با اون ها آشنا بشید و نحوه فعال سازی این قابلیت رو نسبت به باندلر خودتون پیدا کنید.
https://vuejs.org/guide/extras/reactivity-transform.html
با دوستان خود به اشتراک بگذارید....
بزرگترین گروه و کانال توسعه دهندگان vuejs و nuxtjs در ایران
لینک گروه :
https://t.me/ir_vuejs
لینک کانال :
https://telegram.me/vue_js
#vue #tips