diff --git a/src/api/reactivity-advanced.md b/src/api/reactivity-advanced.md index cb5e67f5..f0e6521b 100644 --- a/src/api/reactivity-advanced.md +++ b/src/api/reactivity-advanced.md @@ -1,10 +1,10 @@ -# Reactivity API: Advanced {#reactivity-api-advanced} +# Reactivity API: مفاهیم پیشرفته {#reactivity-api-advanced} -## shallowRef() {#shallowref} +## shallowRef {#shallowref} -Shallow version of [`ref()`](./reactivity-core#ref). +نسخه سطحی یا Shallow از [`ref`](./reactivity-core#ref). -- **Type** +- **تایپ** ```ts function shallowRef(value: T): ShallowRef @@ -14,39 +14,41 @@ Shallow version of [`ref()`](./reactivity-core#ref). } ``` -- **Details** +- **جزییات** - Unlike `ref()`, the inner value of a shallow ref is stored and exposed as-is, and will not be made deeply reactive. Only the `.value` access is reactive. +برخلاف `ref`، مقدار درونی یک `shallowRef` همانطور که هست ذخیره و بازیابی می شود و عمیقا reactive نمی‌شود. فقط دسترسی مقدار «value» از آن reactive خواهد بود. - `shallowRef()` is typically used for performance optimizations of large data structures, or integration with external state management systems. + ‍`shallowRef` معمولاً برای بهینه‌سازی عملکرد داده ساختار های بزرگ و یا ادغام با سیستم‌های مدیریت state خارجی، استفاده می‌شود. -- **Example** +- **مثال** ```js const state = shallowRef({ count: 1 }) - // does NOT trigger change + // باعث بروز تغییر نمی شود state.value.count = 2 - // does trigger change + // باعث بروز تغییر می شود state.value = { count: 2 } ``` + تنها زمانی بروز تغییر اتفاق می افتد که reference مقدار `value` تغییر کرده باشد. -- **See also** - - [Guide - Reduce Reactivity Overhead for Large Immutable Structures](/guide/best-practices/performance#reduce-reactivity-overhead-for-large-immutable-structures) - - [Guide - Integration with External State Systems](/guide/extras/reactivity-in-depth#integration-with-external-state-systems) +- **این مطالب را هم ببینید** + - [راهنما - کاهش هزینه‌ی بیش از حد واکنش‌پذیری برای ساختارهای بزرگِ غیرقابل تغییر](/guide/best-practices/performance#reduce-reactivity-overhead-for-large-immutable-structures) + - [راهنما - یکپارچه‌سازی با سیستم‌های مدیریت state خارجی](/guide/extras/reactivity-in-depth#integration-with-external-state-systems) -## triggerRef() {#triggerref} +## triggerRef {#triggerref} -Force trigger effects that depends on a [shallow ref](#shallowref). This is typically used after making deep mutations to the inner value of a shallow ref. +این تابع Effect هایی را که به یک [shallow ref](#shallowref) وابسه هستند، به صورت اجباری، اجرا می کند. از این تابع معمولا زمانی استفاده می شود که بر روی value داخلی یک `shallowRef` تغییرات عمیق (تغییراتی که reference را تغییر نمی دهند) انجام شده باشد. -- **Type** + +- **تایپ** ```ts function triggerRef(ref: ShallowRef): void ``` -- **Example** +- **مثال** ```js const shallow = shallowRef({ @@ -65,11 +67,11 @@ Force trigger effects that depends on a [shallow ref](#shallowref). This is typi triggerRef(shallow) ``` -## customRef() {#customref} +## customRef {#customref} -Creates a customized ref with explicit control over its dependency tracking and updates triggering. +این تابع، یک ref سفارشی با امکان کنترل صریح ردیابی وابستگی (Dependency-Tracking) و زمان بروزرسانی، ایجاد می‌کند. -- **Type** +- **تایپ** ```ts function customRef(factory: CustomRefFactory): Ref @@ -83,15 +85,15 @@ Creates a customized ref with explicit control over its dependency tracking and } ``` -- **Details** +- **جزییات** - `customRef()` expects a factory function, which receives `track` and `trigger` functions as arguments and should return an object with `get` and `set` methods. +`customRef` انتظار یک تابع Factory دارد. این تابع Factory، توابع `track` و `trigger` را به عنوان آرگومان دریافت کرده و باید یک شی را با متدهای `get` و `set` برگرداند. - In general, `track()` should be called inside `get()`, and `trigger()` should be called inside `set()`. However, you have full control over when they should be called, or whether they should be called at all. + به طور کلی، `track` باید در داخل `get`، و `trigger` باید در داخل `set` فراخوانی شود. با این حال، کنترل اینکه چه زمانی باید آنها را فراخوانی کرد یا اینکه آیا اصلاً نیازی به فراخوانی آنها است یا خیر، با شماست. -- **Example** +- **مثال** - Creating a debounced ref that only updates the value after a certain timeout after the latest set call: +ایجاد یک ref تاخیر خورده (Debounced) که فقط پس از یک بازه زمانی مشخص از آخرین فراخوانی `set`، مقدار را به‌روزرسانی می‌کند: ```js import { customRef } from 'vue' @@ -116,7 +118,7 @@ Creates a customized ref with explicit control over its dependency tracking and } ``` - Usage in component: +استفاده از آن در کامپوننت: ```vue