Skip to content

Commit

Permalink
Update src/api (#196)
Browse files Browse the repository at this point in the history
* Update custom-renderer.md

* Update general.md

* Update options-composition.md

* Update options-misc.md

* Update options-rendering.md

* Update options-state.md

* Update reactivity-advanced.md

* Update reactivity-core.md

* Update reactivity-utilities.md

* Update render-function.md

* Update sfc-script-setup.md

* Update sfc-spec.md

---------

Co-authored-by: Mostafa <[email protected]>
  • Loading branch information
mohammadshg84 and mostafa-nematpour authored Jun 25, 2024
1 parent 4bf5884 commit ff59d9c
Show file tree
Hide file tree
Showing 12 changed files with 151 additions and 151 deletions.
2 changes: 1 addition & 1 deletion src/api/custom-renderer.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## createRenderer() {#createrenderer}

یک رندرکننده سفارشی ایجاد می‌کند. با ارائه APIهای مختص پلتفرم برای ایجاد و دستکاری node، می توانید از هسته ران‌تایم Vue برای هدف قرار دادن محیط های غیر DOM استفاده کنید.
یک رندرکننده سفارشی ایجاد می‌کند. با ارائه APIهای مختص پلتفرم برای ایجاد و دستکاری node، میتوانید از هسته ران‌تایم Vue برای هدف قرار دادن محیطهای غیر DOM استفاده کنید.

- **تایپ (Type)**

Expand Down
2 changes: 1 addition & 1 deletion src/api/general.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## ورژن {#version}

نسخه فعلی Vue را نشان می دهد.
نسخه فعلی Vue را نشان میدهد.

- **تایپ:** `رشته(string) `

Expand Down
46 changes: 23 additions & 23 deletions src/api/options-composition.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
(value)
را برای
inject
کردن در کامپوننتهای فرزند فراهم میکند.
کردن در کامپوننت‌های فرزند فراهم می‌کند.

- **تایپ (Type)**

Expand All @@ -19,9 +19,9 @@

- **جزئیات**

توابع `provide` و ‍[`inject`](#inject) در کنار هم استفاده میشوند تا به کامپوننت های والد اجازه دهند به عنوان dependency injector نسبت به کامپوننتهای فرزند عمل کنند، بدون در نظر گرفتن اینکه سلسله مراتب کامپوننتها چقدر عمیق هستند تا زمانی که همگی داخل یک زنجیر والد (parent chain) باشند.
توابع `provide` و ‍[`inject`](#inject) در کنار هم استفاده می‌شوند تا به کامپوننتهای والد اجازه دهند به عنوان dependency injector نسبت به کامپوننت‌های فرزند عمل کنند، بدون در نظر گرفتن اینکه سلسله مراتب کامپوننت‌ها چقدر عمیق هستند تا زمانی که همگی داخل یک زنجیر والد (parent chain) باشند.

آپشن `provide` باید object یا یک تابع که یک object بازگردانی میکند باشد. این object شامل پراپرتیهایی است که برای inject در فرزندان در دسترس هستند. شما میتوانید از Symbol ها به عنوان کلید (key) در این object استفاده کنید.
آپشن `provide` باید object یا یک تابع که یک object بازگردانی می‌کند باشد. این object شامل پراپرتی‌هایی است که برای inject در فرزندان در دسترس هستند. شما می‌توانید از Symbol ها به عنوان کلید (key) در این object استفاده کنید.



Expand Down Expand Up @@ -62,7 +62,7 @@

## تابع ()inject {#inject}

پراپرتی هایی برای inject کردن در کامپوننت حاضر با مکانیابی آنها از ancestor provider ها تعریف میکند.
پراپرتیهایی برای inject کردن در کامپوننت حاضر با مکان‌یابی آن‌ها از ancestor providerها تعریف می‌کند.

- **تایپ (Type)**

Expand All @@ -83,16 +83,16 @@
- **جزئیات**
آپشن `inject` باید یکی از حالتهای زیر باشد :
آپشن `inject` باید یکی از حالت‌های زیر باشد:
- آرایه ای از string ها
- آرایهای از stringها
- یا یک آبجکت که کلیدهای آن local binding name هستند و مقادیر آن یکی از موارد زیر است:
- یک کلید (string یا Symbol) برای جستجو در injection های قابل دسترس
- یک کلید (string یا Symbol) برای جستجو در injectionهای قابل دسترس
- یا یک object که در آن:
- پراپرتی ‍`from` کلیدی است (string یا Symbol) برای جستجو در injection های در دسترس
- پراپرتی `default` به عنوان یک fallback value استفاده میشود. همانند مقدار پیشفرض برای props یک تابع factory برای object types ها نیاز است تا از اشتراک value بین چندین component instance جلوگیری کند
- پراپرتی ‍`from` کلیدی است (string یا Symbol) برای جستجو در injectionهای در دسترس
- پراپرتی `default` به عنوان یک fallback value استفاده می‌شود. همانند مقدار پیش‌فرض برای props یک تابع factory برای object typesها نیاز است تا از اشتراک value بین چندین component instance جلوگیری کند
اگر هیچ پراپرتی match شده و یا مقدار پیشفرضی provide نشده باشد injected property برابر با undefined خواهد بود.
اگر هیچ پراپرتی match شده و یا مقدار پیشفرضی provide نشده باشد، injected property برابر با undefined خواهد بود.
- **مثالها**
Expand Down Expand Up @@ -158,7 +158,7 @@ Injection ها می توانند با مقدار پیش فرض اختیاری ب
}
```

همانند prop defaults, شما باید از یک تابع factory برای مقادیر non-primitive استفاده کنید
همانند prop defaults، شما باید از یک تابع factory برای مقادیر non-primitive استفاده کنید


```js
Expand All @@ -174,9 +174,9 @@ Injection ها می توانند با مقدار پیش فرض اختیاری ب

- **همچنین ببینید** [Provide / Inject](/guide/components/provide-inject)

## میکسینها (mixins) {#mixins}
## میکسین‌ها (mixins) {#mixins}

یک آرایه از option object ها برای ترکیب شدن در کامپوننت حاضر.
یک آرایه از option objectها برای ترکیب شدن در کامپوننت حاضر.

- **تایپ (Type)**

Expand All @@ -188,12 +188,12 @@ Injection ها می توانند با مقدار پیش فرض اختیاری ب

- **جزئیات**

آپشن mixins یک آرایه از mixin object ها را می‌پذیرد. این mixin object ها می‌توانند شامل instance option ها مانند instance object های عادی باشند و در نهایت با option های نهایی با استفاده از منطق مشخص ادغام option ها ادغام خواهند شد. به عنوان مثال، اگر mixin شما یک هوک created داشته باشد و خود کامپوننت هم یک هوک مشابه داشته باشد، هر دو تابع فراخوانی خواهند شد.
آپشن mixins یک آرایه از mixin objectها را می‌پذیرد. این mixin objectها می‌توانند شامل instance optionها مانند instance objectهای عادی باشند و در نهایت با optionهای نهایی با استفاده از منطق مشخص ادغام optionها ادغام خواهند شد. به عنوان مثال، اگر mixin شما یک هوک created داشته باشد و خود کامپوننت هم یک هوک مشابه داشته باشد، هر دو تابع فراخوانی خواهند شد.

هوک‌های mixin به ترتیبی که provide شده‌اند و قبل از هوک‌های خود کامپوننت فراخوانی می‌شوند.

:::warning دیگر پیشنهاد نمیشود
در 2 Vue میکسین ها (mixins) مکانیزم اصلی برای ساخت تکه های قابل استفاده مجدد از کامپوننت ها بودند. درحالی که mixin ها در Vue 3 پشتیبانی میشوند با این حال [ توابع Composable با استفاده از Composition API](/guide/reusability/composables) حالا راه حل مقدمتر و ترجیح داده شده برای استفاده مجدد از کدها بین کامپوننتهاست.
:::warning دیگر پیشنهاد نمی‌شود
در 2 Vue میکسین ها (mixins) مکانیزم اصلی برای ساخت تکههای قابل استفاده مجدد از کامپوننتها بودند. درحالی که mixinها در Vue 3 پشتیبانی میشوند با این حال [ توابع Composable با استفاده از Composition API](/guide/reusability/composables) حالا راه حل مقدم‌تر و ترجیح داده شده برای استفاده مجدد از کدها بین کامپوننت‌هاست.
:::

- **مثالها**
Expand Down Expand Up @@ -230,13 +230,13 @@ Injection ها می توانند با مقدار پیش فرض اختیاری ب

- **جزئیات**

به یک کامپوننت اجازه می دهد تا دیگری را extend کند و option های کامپوننت را به ارث ببرد.
به یک کامپوننت اجازه میدهد تا دیگری را extend کند و optionهای کامپوننت را به ارث ببرد.

از دیدگاه پیاده‌سازی، extends تقریباً همانند mixins است. کامپوننت مشخص‌شده توسط extends به عنوان اینکه یک mixin اولیه باشد، پردازش خواهد شد.

با این حال `extends` و `mixins` اهداف مختلفی را بیان میکنند. آپشن `mixins` در اصل برای ساخت تکه های (chunks) یک functionality استفاده میشود در حالی که `extends` به طور اساسی برای بحث وراثت (inheritance) مورد استفاده قرار میگیرد.
با این حال `extends` و `mixins` اهداف مختلفی را بیان می‌کنند. آپشن `mixins` در اصل برای ساخت تکههای (chunks) یک functionality استفاده می‌شود در حالی که `extends` به طور اساسی برای بحث وراثت (inheritance) مورد استفاده قرار می‌گیرد.

همانند `mixins` هر option (بجز ()setup) توسط استراتژیهای مرج رایج مرج خواهد شد.
همانند `mixins` هر option (بجز ()setup) توسط استراتژی‌های مرج رایج مرج خواهد شد.

- **مثال**

Expand All @@ -249,12 +249,12 @@ Injection ها می توانند با مقدار پیش فرض اختیاری ب
}
```

:::warning برای Composition API توصیه نمی شود
`extends` برای `Options API` طراحی شده است و merging متعلق به هوک `()setup` را handle نمی کند.
:::warning برای Composition API توصیه نمیشود
`extends` برای `Options API` طراحی شده است و merging متعلق به هوک `()setup` را handle نمیکند.

در Composition API مدل ذهنی که نسبت به وراثت برای logic reuse ترجیح داده میشود "compose" است. اگر شما منطقی در یک کامپوننت دارید که نیاز به استفاده مجدد از آن در کامپوننت دیگر است منطق مد نظر را به یک Composable انتقال دهید.
در Composition API مدل ذهنی که نسبت به وراثت برای logic reuse ترجیح داده می‌شود "compose" است. اگر شما منطقی در یک کامپوننت دارید که نیاز به استفاده مجدد از آن در کامپوننت دیگر است منطق مد نظر را به یک Composable انتقال دهید.

اگر همجنان قصد دارید توسط Composition API یک کامپوننت را extend کنید میتوانید `()setup` متعلق به کامپوننت base را داخل ‍`()setup` متعلق به کامپوننتی که میخواهید extend کنید فراخوانی کنید:
اگر همجنان قصد دارید توسط Composition API یک کامپوننت را extend کنید می‌توانید `()setup` متعلق به کامپوننت base را داخل ‍`()setup` متعلق به کامپوننتی که می‌خواهید extend کنید فراخوانی کنید:

```js
import Base from './Base.js'
Expand Down
28 changes: 14 additions & 14 deletions src/api/options-misc.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## نام {#name}

به صراحت یک نام نمایشی (display name) برای کامپوننت تعریف میکند.
به صراحت یک نام نمایشی (display name) برای کامپوننت تعریف می‌کند.

- **تایپ (Type)**

Expand All @@ -14,27 +14,27 @@

- **جزئیات**

نام کامپوننت برای موارد زیر استفاده میشود:
نام کامپوننت برای موارد زیر استفاده می‌شود:

- خود ارجاعی بازگشتی (Recursive self-reference) در تمپلیت خود کامپوننت
- نمایش در درخت بازرسی (inspection tree) کامپوننت متعلق به Vue DevTools
- نمایش در trance‌های کامپوننت اخطار (warning)

زمانی که از کامپوننتهای تک فایلی استفاده میکنید کامپوننت از قبل نام خود را از نام فایل میخواند (infer میکند). برای مثال یک فایل با نام `MyComponent.vue` نام نمایشی "MyComponent" را میخواند.
زمانی که از کامپوننت‌های تک فایلی استفاده می‌کنید کامپوننت از قبل نام خود را از نام فایل می‌خواند (infer می‌کند). برای مثال یک فایل با نام `MyComponent.vue` نام نمایشی "MyComponent" را می‌خواند.

مورد دیگر زمانی است که یک کامپوننت به صورت سراسری (global) با [`app.component`](/api/application#app-component) ثبت شده باشد که در این صورت آیدی سراسری به شکل خودکار به عنوان نام کامپوننت قرار میگیرد.
مورد دیگر زمانی است که یک کامپوننت به صورت سراسری (global) با [`app.component`](/api/application#app-component) ثبت شده باشد که در این صورت آیدی سراسری به شکل خودکار به عنوان نام کامپوننت قرار می‌گیرد.

آپشن `name` به شما اجازه میدهد که نام infer شده را نادیده بگیرید یا زمانی که هیچ نامی نمیتواند infer شود به صورت مشخص یک نام تعیین کنید (برای مثال زمانی که از ابزارهای ساخت (build tools) استفاده نمیشود یا در یک کامپوننت غیر تک فایلی که به صورت inline هستند)
آپشن `name` به شما اجازه می‌دهد که نام infer شده را نادیده بگیرید یا زمانی که هیچ نامی نمی‌تواند infer شود به صورت مشخص یک نام تعیین کنید (برای مثال زمانی که از ابزارهای ساخت (build tools) استفاده نمی‌شود یا در یک کامپوننت غیر تک فایلی که به صورت inline هستند)

یک مورد وجود دارد که نام صراحتاً ضروری است: هنگام تطبیق با کامپوننتهای قابل کش در [`<KeepAlive>`](/guide/built-ins/keep-alive) از طریق prop های `include / exclude` آن.
یک مورد وجود دارد که نام صراحتاً ضروری است: هنگام تطبیق با کامپوننت‌های قابل کش در [`<KeepAlive>`](/guide/built-ins/keep-alive) از طریق propهای `include / exclude` آن.

:::tip نکته
از نسخه 3.2.34, یک کامپوننت تک فایلی با استفاده از `<script setup>` به شکل خودکار آپشن `name` خود را بر اساس نام فایل infer میکند که نیاز به تعریف نام را حتی زمان استفاده از `<KeepAlive>` از بین میبرد.
از نسخه 3.2.34, یک کامپوننت تک فایلی با استفاده از `<script setup>` به شکل خودکار آپشن `name` خود را بر اساس نام فایل infer می‌کند که نیاز به تعریف نام را حتی زمان استفاده از `<KeepAlive>` از بین می‌برد.
:::

## آپشن inheritAttrs {#inheritattrs}

اینکه رفتار پیشفرض attribute fallthrough متعلق به کامپوننت فعال باشد را کنترل میکند.
اینکه رفتار پیش‌فرض attribute fallthrough متعلق به کامپوننت فعال باشد را کنترل می‌کند.

- **تایپ (Type)**

Expand All @@ -46,7 +46,7 @@

- **جزئیات**

به صورت پیشفرض ویژگیهای پیوندی (attribute binding) مربوط به اسکوپ کامپوننت والد که به عنوان props تشخیص داده نشدند "fallthrough" خواهند کرد. این به این معنی است که وقتی یک تک کامپوننت ریشه ای (single-root component) داشته باشیم این پیوندها به عنوان ویژگی های معمولی HTML به کامپوننت ریشه فرزند اعمال می شود. این ممکن است در زمان نوشتن یک کامپوننت که یک المنت هدف یا کامپوننت دیگر را در بر میگیرد (wraps) رفتار دلخواه ما نباشد. با تنظیم `inheritAttrs` روی `false` این رفتار پیش‌فرض را می‌توان غیرفعال کرد. ویژگی ها از طریق پراپرتی های نمونه (instance) `attrs$` در دسترس هستند و می توانند به طور صریح به یک المنت غیر root با استفاده از `v-bind` متصل شوند.
به صورت پیش‌فرض ویژگی‌های پیوندی (attribute binding) مربوط به اسکوپ کامپوننت والد که به عنوان props تشخیص داده نشدند "fallthrough" خواهند کرد. این به این معنی است که وقتی یک تک کامپوننت ریشهای (single-root component) داشته باشیم این پیوندها به عنوان ویژگیهای معمولی HTML به کامپوننت ریشه فرزند اعمال می شود. این ممکن است در زمان نوشتن یک کامپوننت که یک المنت هدف یا کامپوننت دیگر را در بر می‌گیرد (wraps) رفتار دلخواه ما نباشد. با تنظیم `inheritAttrs` روی `false` این رفتار پیش‌فرض را می‌توان غیرفعال کرد. ویژگیها از طریق پراپرتیهای نمونه (instance) `attrs$` در دسترس هستند و میتوانند به طور صریح به یک المنت غیر root با استفاده از `v-bind` متصل شوند.

- **مثالها**

Expand Down Expand Up @@ -76,7 +76,7 @@
</div>
<div class="composition-api">

زمانی تعریف این آپشن در یک کامپوننت که از `<script setup>` استفاده میکند شما میتوانید از ماکرو [`defineOptions`](/api/sfc-script-setup#defineoptions) استفاده کنید.
زمانی تعریف این آپشن در یک کامپوننت که از `<script setup>` استفاده می‌کند شما می‌توانید از ماکرو [`defineOptions`](/api/sfc-script-setup#defineoptions) استفاده کنید.

```vue
<script setup>
Expand All @@ -103,9 +103,9 @@

- **همچنین ببینید** [Fallthrough Attributes](/guide/components/attrs)

## کامپوننتها {#components}
## کامپوننت‌ها {#components}

یک آبجکت که کامپوننتها را ثبت میکند تا در دسترس نمونه‌ی کامپوننت (component instance) باشد.
یک آبجکت که کامپوننت‌ها را ثبت می‌کند تا در دسترس نمونه‌ی کامپوننت (component instance) باشد.

- **تایپ (Type)**

Expand Down Expand Up @@ -135,7 +135,7 @@

## دایرکتیوها (directives) {#directives}

یک آبجکت که دایرکتیوها را ثبت میکند که در دسترس نمونه‌ی کامپوننت باشد.
یک آبجکت که دایرکتیوها را ثبت می‌کند که در دسترس نمونه‌ی کامپوننت باشد.

- **تایپ (Type)**

Expand All @@ -145,7 +145,7 @@
}
```

- **نمونه ها**
- **نمونهها**

```js
export default {
Expand Down
Loading

0 comments on commit ff59d9c

Please sign in to comment.