Skip to content

Commit

Permalink
fix(computed): untranslated part
Browse files Browse the repository at this point in the history
  • Loading branch information
mostafa-nematpour committed Nov 12, 2024
1 parent 5b6202b commit eb74326
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/guide/essentials/computed.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

## مثال پایه {#basic-example}

عباراتی که در تمپلیت استفاده می شوند بسیار راحت هستند، اما آنها برای عملیات‌های ساده طراحی شده‌اند. قرار دادن منطق بیش از حد در تمپلیت‌های شما ممکن است باعث ناخوانایی و دشواری در نگهداری کدها شود. به عنوان مثال، اگر یک آبجکت با یک آرایه تو در تو داشته باشیم:
عباراتی که در تمپلیت استفاده میشوند بسیار راحت هستند، اما آنها برای عملیات‌های ساده طراحی شده‌اند. قرار دادن منطق بیش از حد در تمپلیت‌های شما ممکن است باعث ناخوانایی و دشواری در نگهداری کدها شود. به عنوان مثال، اگر یک آبجکت با یک آرایه تو در تو داشته باشیم:

<div class="options-api">

Expand Down Expand Up @@ -56,7 +56,7 @@ const author = reactive({

در این نقطه، تمپلیت کمی پیچیده شده است. باید وقت بیشتری برای درک کد صرف کنیم که متوجه شویم شرط بر اساس `author.books` یک محاسبه انجام می‌دهد. مهمتر از این، اگر نیاز باشد که این محاسبه را بیش از یک بار در تمپلیت استفاده کنیم، احتمالاً نمی‌خواهیم یک کد را چندین بار بنویسیم.

به همین دلیل است که وقتی منطق پیچیده و داده‌های پویا داریم، استفاده از ویژگی **computed** توصیه می‌شود. کلمه computed به معنی محاسبه شده است. در اینجا همان مثال، بازسازی شده است:
به همین دلیل است که وقتی منطق پیچیده و داده‌های پویا داریم، استفاده از ویژگی **computed** توصیه می‌شود. کلمه computed به معنی محاسبه شده است. در اینجا همان مثال بازسازی شده است:

<div class="options-api">

Expand Down Expand Up @@ -170,7 +170,7 @@ function calculateBooksMessage() {

</div>

به جای یک پراپرتی computed، می توانیم همان تابع را به عنوان یک متد تعریف کنیم. نتیجه نهایی این دو رویکرد دقیقاً یکسان است. با این حال، تفاوت این است که **پراپرتی‌های computed بر اساس وابستگی‌های reactive، کش می شوند.** یک پراپرتی computed تنها زمانی دوباره ارزیابی می شود که برخی از وابستگی های reactive آن تغییر کرده باشند. این بدان معناست که تا زمانی که `author.books` تغییر نکرده باشد، دسترسی به `publishedBooksMessage` نتیجه محاسبه قبلی را برمی گرداند، بدون نیاز به اجرای مجدد تابع getter .
به جای یک پراپرتی computed، می توانیم همان تابع را به عنوان یک متد تعریف کنیم. نتیجه نهایی این دو رویکرد دقیقاً یکسان است. با این حال، تفاوت این است که **پراپرتی‌های computed بر اساس وابستگی‌های reactive، کش میشوند.** یک پراپرتی computed تنها زمانی دوباره ارزیابی میشود که برخی از وابستگیهای reactive آن تغییر کرده باشند. این بدان معناست که تا زمانی که `author.books` تغییر نکرده باشد، دسترسی به `publishedBooksMessage` نتیجه محاسبه قبلی را برمیگرداند، بدون نیاز به اجرای مجدد تابع getter .

این به این معنی هم هست که پراپرتی computed زیر هیچ وقت به‌روز نمی‌شود، زیرا `Date.now()‎` یک reactive نمی‌باشد.

Expand Down Expand Up @@ -313,7 +313,7 @@ const alwaysSmall = computed((previous) => {
```
</div>

In case you're using a writable computed:
در صورتی که از computed قابل تغییر استفاده می کنید:

<div class="options-api">

Expand Down Expand Up @@ -371,7 +371,7 @@ const alwaysSmall = computed({

### توابع getter باید فقط مقدار مورد نظر را برگردانند و تغییر دیگری در برنامه ایجاد نکنند.{#getters-should-be-side-effect-free}

مهم است به یاد داشته باشید که توابع getter در computed فقط باید محاسبات خالص را انجام دهند. به عبارت دیگر، **درون تابع getter، دیگر stateها را تغییر ندهید، از درخواست‌های async یا تغییر DOM استفاده نکنید!** به computed به عنوان یک راه ساده برای محاسبه یک مقدار بر اساس مقادیر دیگر نگاه کنید - مسئولیت اصلی آن تنها محاسبه و بازگرداندن آن مقدار می‌باشد. در ادامه این بخش، به بحث در مورد انجام عملیات هایی در پاسخ به تغییرات state با [ناظرها (watchers)](./watchers) خواهیم پرداخت.
مهم است به یاد داشته باشید که توابع getter در computed فقط باید محاسبات خالص را انجام دهند. به عبارت دیگر، **درون تابع getter، دیگر stateها را تغییر ندهید، از درخواست‌های async یا تغییر DOM استفاده نکنید!** به computed به عنوان یک راه ساده برای محاسبه یک مقدار بر اساس مقادیر دیگر نگاه کنید - مسئولیت اصلی آن تنها محاسبه و بازگرداندن آن مقدار می‌باشد. در ادامه این فصل، به بحث در مورد انجام عملیاتهایی در پاسخ به تغییرات state با [ناظرها (watchers)](./watchers) خواهیم پرداخت.

### مقادیر computed را تغییر ندهید {#avoid-mutating-computed-value}

Expand Down

0 comments on commit eb74326

Please sign in to comment.