Skip to content

Commit

Permalink
end-tutorial (#58)
Browse files Browse the repository at this point in the history
* slots

* fix footer button

* fix translate

* btn rename
  • Loading branch information
mostafa-nematpour authored Nov 10, 2023
1 parent b99fa15 commit 8f4df65
Show file tree
Hide file tree
Showing 13 changed files with 61 additions and 69 deletions.
55 changes: 21 additions & 34 deletions src/tutorial/TutorialRepl.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,43 +109,30 @@ updateExample()
<section class="tutorial" dir="rtl">
<article class="instruction" ref="instruction">
<PreferenceSwitch />
<VTFlyout
style="margin-right: 25%"
:button="`${currentStepIndex} / ${totalSteps}`"
>
<VTLink
v-for="(step, i) of allSteps"
class="vt-menu-link"
:class="{ active: i + 1 === currentStepIndex }"
:href="step.link"
>{{ step.text }}</VTLink
>
<VTFlyout style="margin-right: 25%" :button="`${currentStepIndex} / ${totalSteps}`">
<VTLink v-for="(step, i) of allSteps" class="vt-menu-link" :class="{ active: i + 1 === currentStepIndex }"
:href="step.link">{{ step.text }}</VTLink>
</VTFlyout>
<div class="vt-doc" v-html="currentDescription"></div>
<div class="hint" v-if="data[currentStep]?._hint">
<button @click="toggleResult">
{{ showingHint ? 'بازنشانی' : 'به من نشان بده!' }}
{{ showingHint ? 'بازنشانی' : 'نشان بده!' }}
</button>
</div>
<footer>
<a class="next-step" v-if="nextStep" :href="`#${nextStep}`"
>بعدی <VTIconChevronLeft class="vt-link-icon"
/></a>
<a v-if="prevStep" :href="`#${prevStep}`"
><VTIconChevronRight class="vt-link-icon" style="margin: 0" />
قبلی</a
>
<a class="next-step" v-if="nextStep" :href="`#${nextStep}`" dir="ltr">
بعدی
<VTIconChevronRight class="vt-link-icon" style="margin: 0" />
</a>

<a v-if="prevStep" :href="`#${prevStep}`" dir="ltr">
<VTIconChevronLeft class="vt-link-icon" style="margin: 0" />
قبلی
</a>
</footer>
</article>
<Repl
layout="vertical"
:store="store"
:showCompileOutput="false"
:clearConsole="false"
:showImportMap="false"
@keyup="showingHint = false"
/>
<Repl layout="vertical" :store="store" :showCompileOutput="false" :clearConsole="false" :showImportMap="false"
@keyup="showingHint = false" />
</section>
</template>

Expand All @@ -154,9 +141,7 @@ updateExample()
display: flex;
max-width: 1440px;
margin: 0 auto;
--height: calc(
100vh - var(--vt-nav-height) - var(--vt-banner-height, 0px)
);
--height: calc(100vh - var(--vt-nav-height) - var(--vt-banner-height, 0px));
}
.preference-switch {
Expand Down Expand Up @@ -261,22 +246,24 @@ button {
.tutorial {
display: block;
}
.instruction {
width: 100%;
border-right: none;
border-bottom: 1px solid var(--vt-c-divider-light);
height: 30vh;
padding: 0 24px 24px;
}
.vue-repl {
width: 100%;
height: calc(
70vh - var(--vt-nav-height) - var(--vt-banner-height, 0px)
);
height: calc(70vh - var(--vt-nav-height) - var(--vt-banner-height, 0px));
}
:deep(.wide) {
display: none;
}
:deep(.narrow) {
display: inline;
}
Expand Down
22 changes: 11 additions & 11 deletions src/tutorial/src/step-1/description.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# شروع میکنیم {#getting-started}
# Getting Started {#getting-started}

به آموزش ویو خوش آمدید !
به آموزش Vue خوش آمدید!

هدف از این آموزش تجربه سریع ویو و حس کردن تجربه کاربری آن می باشد، درست در مرورگر شما. این آموزش شما را ماهر نمی سازد و نیازی هم به درک همه چیز پیش از شروع نیست. به هر حال ، زمانی که شما این آموزش را به پایان رسانید ، حتما سعی کنید <a target="_blank" href="/guide/introduction.html">راهنما</a> را مطالعه کنید که هر موضوع را با جزئیات بیشتری توضیح می دهد.
هدف از این آموزش تجربه سریع Vue و حس کردن تجربه کاربری آن می باشد، درست در مرورگر شما. این آموزش شما را ماهر نمی سازد و نیازی هم به درک همه چیز پیش از شروع نیست. به هر حال، پس از اینکه آموزش را به پایان رسانید، حتما سعی کنید <a target="_blank" href="/guide/introduction.html">راهنما</a> را مطالعه کنید که موضوعات را با جزئیات بیشتری توضیح می دهد.

## پیش نیاز ها {#prerequisites}
## پیش‌نیازها {#prerequisites}

این آموزش آشنایی اولیه با HTML، CSS و جاوا اسکریپت را فرض می کند. اگر کاملاً در توسعه فرانت‌اند تازه کار هستید، ممکن است بهترین ایده نباشد که به‌ عنوان اولین گام به سراغ یک فریم ورک بروید - اصول اولیه را درک کنید و سپس برگردید! تجربه قبلی با فریم ورک های دیگر کمک می کند، اما لازم نیست.
این آموزش آشنایی اولیه با HTML، CSS و جاوااسکریپت را نیازمند است. اگر کاملاً در توسعه فرانت‌اند تازه کار هستید، ممکن است بهترین ایده نباشد که به‌ عنوان اولین گام به سراغ یک فریمورک بروید - اصول اولیه را درک کنید و سپس برگردید! داشتن تجربه قبلی با فریمورک های دیگر کمک می کند، اما لازم نیست.

## چگونه از این آموزش استفاده کنیم ؟ {#how-to-use-this-tutorial}
## چگونه از این آموزش استفاده کنیم؟ {#how-to-use-this-tutorial}

شما میتوانید این کد را ویرایش کرده <span class="wide">در سمت راست</span><span class="narrow">زیر</span> و نتیجه را بلافاضله مشاهده کنید.هر قدم یک ویژگی اصلی ویو را معرفی خواهد کرد، و از شما انتظار خواهد رفت که کد را کامل کنید تا پیش نمایش کار کند. اگر در مسیر به مشکلی برخوردید شما به دکمه خواهید داشت به نام "نشانم بده " که کدکامل شده را به شما نمایش خواهد داد. سعی کنید روی این ویژگی خیلی حساب باز نکنید - شما با دست و پنجه نرم کردن با کد سریع تر یاد میگیرید.
شما می‌توانید کد را ویرایش کرده <span class="wide">در سمت راست</span><span class="narrow">زیر</span> و نتیجه را بلافاصله مشاهده کنید. هر قدم یک ویژگی اصلی Vue را معرفی خواهد کرد، و از شما انتظار خواهد رفت که کد را کامل کنید تا پیش نمایش کار کند. اگر در مسیر به مشکلی برخوردید شما به دکمه خواهید داشت به نام "نشان بده!" که کد کامل شده را به شما نمایش خواهد داد. سعی کنید روی این ویژگی خیلی حساب باز نکنید - شما با دست و پنجه نرم کردن با کد سریع تر یاد می‌گیرید.

اگر یک توسعه‌دهنده با تجربه هستید که از Vue 2 یا سایر فریم ورک‌ها می‌آیید، چند تنظیمات وجود دارد که می‌توانید برای بهترین استفاده از این آموزش، آن‌ها را تغییر دهید. اگر مبتدی هستید، توصیه می‌شود با پیش‌فرض‌ها بروید.
اگر یک توسعه‌دهنده با تجربه هستید که از Vue 2 یا سایر فریمورک‌ها می‌آیید، چند تنظیمات وجود دارد که می‌توانید برای بهترین استفاده از این آموزش، آن‌ها را تغییر دهید. اگر مبتدی هستید، توصیه می‌شود با پیش‌فرض‌ها بروید.

<details>
<summary>جزئیات تنظیمات آموزش</summary>

- Vue offers two API styles: Options API and Composition API. This tutorial is designed to work for both - you can choose your preferred style using the **API Preference** switches at the top. <a target="_blank" href="/guide/introduction.html#api-styles">Learn more about API styles</a>.
- Vue دو نوع رابط برنامه‌نویسی ارائه می‌دهد: Options API و Composition API. این آموزش برای هر دو طراحی شده است - شما می‌توانید سبک ترجیحی خود را با استفاده از کلیدهای اولویت API در بالا انتخاب کنید. <a target="_blank" href="/guide/introduction.html#api-styles">درباره سبک‌های API بیشتر بیاموزید</a>.

- You can also switch between SFC-mode or HTML-mode. The former will show code examples in <a target="_blank" href="/guide/introduction.html#single-file-components">Single-File Component</a> (SFC) format, which is what most developers use when they use Vue with a build step. HTML-mode shows usage without a build step.
- همچنین می‌توانید بین حالت SFC یا حالت HTML جابجا شوید. حالت اول نمونه‌های کد را در قالب <a target="_blank" href="/guide/introduction.html#single-file-components">کامپوننت‌های تک فایلی (SFC)</a> نمایش می‌دهد، که بیشتر توسعه‌دهندگان وقتی از Vue با build step استفاده می‌کنند، از آن بهره می‌برند. حالت HTML نمونه‌های استفاده از Vue بدون build step را نشان می‌دهد.

</details>

آماده ای ؟ برای شروع روی "بعدی " کلیک کن.
آماده اید؟ برای شروع روی "بعدی" کلیک کنید.
2 changes: 1 addition & 1 deletion src/tutorial/src/step-10/description.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ export default {

</div>

یک مثال عملی‌تر از گزارش به کنسول، دریافت داده جدید هنگامی که ID تغییر کند خواهد بود. کدی که داریم، داده‌های todos را از یک API مجازی در زمان mount شدن مؤلفه دریافت می‌کند. همچنین یک دکمه وجود دارد که ID کاری را که باید دریافت شود افزایش می‌دهد. سعی کنید یک watcher (نظارتگر) را پیاده‌سازی کنید که یک کار جدید را هنگام کلیک بر روی دکمه دریافت کند.
یک مثال عملی‌تر از گزارش به کنسول، دریافت داده جدید هنگامی که ID تغییر کند خواهد بود. کدی که داریم، داده‌های todos را از یک API مجازی در زمان mount شدن مؤلفه دریافت می‌کند. همچنین یک دکمه وجود دارد که ID کاری را که باید دریافت شود افزایش می‌دهد. سعی کنید یک watcher را پیاده‌سازی کنید که یک کار جدید را هنگام کلیک بر روی دکمه دریافت کند.
2 changes: 1 addition & 1 deletion src/tutorial/src/step-11/description.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

تا اینجا، ما تنها با یک کامپوننت‌ کار کرده‌ایم. برنامه‌های واقعی Vue معمولاً با کامپوننت‌های تو در تو ایجاد می‌شوند.

یک کامپوننت‌ والد (پدر) می‌تواند یک کامپوننت‌ دیگر را در تمپلیت خود به عنوان یک کامپوننت‌ فرزند رندر کند. برای استفاده از یک کامپوننت‌ فرزند، ابتدا باید آن را import کنیم:
یک کامپوننت‌ والد (پدر) می‌تواند کامپوننت‌‌های دیگر را در تمپلیت خود به عنوان کامپوننت‌ فرزند رندر کند. برای استفاده از کامپوننت‌ فرزند، ابتدا باید آن را import کنیم:

<div class="composition-api">
<div class="sfc">
Expand Down
2 changes: 1 addition & 1 deletion src/tutorial/src/step-12/description.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Props {#props}

یک کامپوننت فرزند می‌تواند ورودی از والد را از طریق props دریافت کند. ابتدا باید **props** دریافتی خود را اعلام کند:
کامپوننت فرزند می‌تواند ورودی از والد را از طریق props دریافت کند. ابتدا باید **props** دریافتی خود را اعلام کند:

<div class="composition-api">
<div class="sfc">
Expand Down
4 changes: 4 additions & 0 deletions src/tutorial/src/step-15/App/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ h1 {
cursor: pointer;
margin-top: 3em;
}

p {
text-align: center;
}
1 change: 1 addition & 0 deletions src/tutorial/src/step-15/App/template.html
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
<h1 @click="showConfetti">🎉 Congratulations!</h1>
<p>تبریک به شما، تبریک به خودم، تبریک به همه</p>
14 changes: 7 additions & 7 deletions src/tutorial/src/step-15/description.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# You Did It! {#you-did-it}
# You Did It {#you-did-it}

You have finished the tutorial!
شما آموزش را تمام کرده‌اید!

At this point, you should have a good idea of what it's like to work with Vue. However, we covered a lot of things really fast and glossed over the details, so definitely keep learning! As a next step, you can:
در این نقطه، شما باید دانش ابتدایی خوبی از نحوه کار با Vue داشته باشید. با این حال، ما برای افزایش سرعت بسیاری از موارد را پوشش دادیم و جزئیات را نادیده گرفتیم، بنابراین حتماً به یادگیری ادامه دهید! برای مرحله بعدی، می‌توانید:

- Set up a real Vue project on your machine by following the [Quick Start](/guide/quick-start).
- با استفاده از [Quick Start](/guide/quick-start)، یک پروژه Vue واقعی را بر روی دستگاه خود ستاپ کنید.

- Go through the [Main Guide](/guide/essentials/application), which covers all the topics we learned so far in greater details, and much more.
- به [Main Guide](/guide/essentials/application) سر بزیند، که تمام موضوعاتی که تا به اینجا یاد گرفتیم را با جزئیات بیشتر و موارد دیگر آموزش می‌دهد.

- Check out some more practical [Examples](/examples/).
- به مثال‌های عملی بیشتری در [Examples](/examples/) مراجعه کنید.

We can't wait to see what you build next!
ما نمی توانیم صبر کنیم تا ببینیم در آینده چه چیزی خواهید ساخت!
Loading

0 comments on commit 8f4df65

Please sign in to comment.