Skip to content

Commit c48f7f2

Browse files
authored
Change diffs: Update your-first-component.md
1 parent a0a8f0b commit c48f7f2

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

src/content/learn/your-first-component.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ title: Your First Component
5353

5454
همانطور که پروژه شما بزرگ و بزرگتر میشود, توجه خواهید کرد که بسیاری از دیزاین هایی که تبدیل به کامپوننت شدند را میتوانید در هرجایی از صفحات پروژه استفاده کنید و سرعت توسعه را بالا ببرید. همچنین میتوانید در پروژه های خود از کامپوننت یا کتابخانه های آماده ای که تیم React منتشر کرده اند مثل [Material UI.](https://material-ui.com/) و [Chakra UI](https://chakra-ui.com/) استفاده کنید.
5555

56-
## تعریف یک کامپوونت {/*defining-a-component*/}
56+
## تعریف یک کامپوننت {/*defining-a-component*/}
5757

58-
قبلا برای ساخت صفحات وب از تگ های HTML استفاده و برای داینامیک کردن آنها کد های جاوااسکریپتی نوشته میشد, که در زمان خود راه خوبی بود. ولی امروزه چون توی صفحات وب میخواهیم اینتراکشن و پویای بیشتری داشته باشند باید اسکریپت های بیشتری اضافه کنیم. که React تعامل را اولویت قرار میدهد ولی هنوز از همان تکنولوژی استفاده میکند: **یک کامپوننت React تابع جاوااسکریپتی است که شما میتوانید تگ های HTML را در آن بنویسید**که به این صورت نوشته میشود (میتوانید مثال زیر را تغییر دهید)
58+
قبلا برای ساخت صفحات وب از تگ های HTML استفاده و برای داینامیک کردن آنها کد های جاوااسکریپتی نوشته میشد, که در زمان خود راه خوبی بود. ولی امروزه چون توی صفحات وب بخواهید اینتراکشن و پویایی بیشتری داشته باشند باید اسکریپت های بیشتری اضافه کنید. که React تعامل را اولویت قرار میدهد ولی هنوز از همان تکنولوژی استفاده میکند: **یک کامپوننت React تابع جاوااسکریپتی است که شما میتوانید تگ های HTML را در آن بنویسید**که به این صورت نوشته میشود (میتوانید مثال زیر را تغییر دهید)
5959

6060
<Sandpack>
6161

@@ -76,11 +76,11 @@ img { height: 200px; }
7676

7777
</Sandpack>
7878

79-
نحوه ساخت کامپوننت:
79+
در اینجا به شما میگوییم که چگونه یک کامپوننت بسازید:
8080

8181
### قدم اول: خروجی گرفتن (Export) یک کامپوننت {/*step-1-export-the-component*/}
82-
83-
دستور `export default` یک پیشوند در زبان جاوااسکریپت است [standard JavaScript syntax](https://developer.mozilla.org/docs/web/javascript/reference/statements/export) (نه فقط در React), به شما اجازه میدهد که تابع اصلی خود را در فایل مشخص کنید و در فایل دیگر import کنید. (درباره Import بدانید [Importing and Exporting Components](/learn/importing-and-exporting-components)!)
82+
83+
دستور `export default` یک پیشوند در زبان جاوااسکریپت است [standard JavaScript syntax](https://developer.mozilla.org/docs/web/javascript/reference/statements/export) (نه فقط در React), به شما اجازه میدهد که تابع اصلی خود را در فایل خروجی بگیرید و در فایل دیگر import کنید. (درباره Import بدانید [Importing and Exporting Components](/learn/importing-and-exporting-components)!)
8484

8585
### قدم دوم: ساخت و تعریف توابع {/*step-2-define-the-function*/}
8686

@@ -92,11 +92,11 @@ img { height: 200px; }
9292

9393
</Pitfall>
9494

95-
### قدم سوم: اضافه کردن تگ HTML {/*step-3-add-markup*/}
95+
### قدم سوم: اضافه کردن تگ HTML {/*step-3-add-markup*/}
9696

97-
کامپوننت زیر یک تگ `<img />` را به همراه اتریبیوت های `src` و `alt` برمیگرداند. `<img />` مانند HTML نوشته میشود ولی این یک دستور جاوااسکریپتی است! این سینتکس [JSX](/learn/writing-markup-with-jsx) نام دارد, و به شما اجازه میدهد تا تگ های HTML را مستقیما در یک فایل جاوااسکریپت بنویسید.
97+
کامپوننت زیر یک تگ `<img />` را به همراه اتریبیوت های `src` و `alt` برمیگرداند. `<img />` مانند HTML نوشته میشود ولی این یک دستور جاوااسکریپتی است! اسم این سینتکس [JSX](/learn/writing-markup-with-jsx) است, و به شما اجازه میدهد تا تگ های HTML را مستقیما در یک فایل جاوااسکریپت بنویسید.
9898

99-
دستور return را هم میتوان به این صورت در یک خط نوشت:
99+
دستور `return` را هم میتوان به این صورت در یک خط نوشت:
100100

101101
```js
102102
return <img src="https://i.imgur.com/MK3eW3As.jpg" alt="Katherine Johnson" />;
@@ -118,9 +118,9 @@ return (
118118

119119
</Pitfall>
120120

121-
## استفاده از یک کامپوننت {/*using-a-component*/}
121+
## استفاده از یک کامپوننت {/*using-a-component*/}
122122

123-
بعد از اینکه کامپونت `Profile` خود را ساخته اید, الان وقت آن است که همان کامپوننت را در میان کامپوننت های دیگر قرار بدهید. به عنوان مثال شما میتوانید کامپوننت `Gallery` را به همراه چند کامپوننت `Profile` که داخل آن استفاده شده است را export بگیرید:
123+
بعد از اینکه کامپونت `Profile` خود را ساخته اید, الان وقت آن رسیده که همان کامپوننت را در میان کامپوننت های دیگر قرار بدهید. به عنوان مثال شما میتوانید کامپوننت `Gallery` را به همراه چند کامپوننت `Profile` که داخل آن استفاده شده است را export کنید:
124124

125125
<Sandpack>
126126

@@ -170,19 +170,19 @@ img { margin: 0 10px 10px 0; height: 90px; }
170170
</section>
171171
```
172172

173-
### قرار دادن کامپوننت داخل یک کامپوننت دیگر {/*nesting-and-organizing-components*/}
173+
### قرار دادن کامپوننت داخل یک کامپوننت دیگر {/*nesting-and-organizing-components*/}
174174

175175
کامپوننت ها درواقع فانکشن های معمولی جاوااسکریپت هستند, پس شما میتوانید در یک فایل چند کامپوننت تعریف کنید که معمولا زمانی استفاده میشود که کامپوننت ها نسبتا کوچک یا باهم ربطی داشته باشند و اگر فایل شلوغ شد آنها را در فایل های جداگانه ای قرار بدهید. درباره انجام دادن آن و [دستور Import](/learn/importing-and-exporting-components) میتوانید مطالعه کنید.
176176

177-
چون کامپوننت `Profile` داخل کامپوننت `Gallery` هست و چند باری هم تکرار شده, بنابراین کامپوننت `Gallery` یک کامپوننت والد یا **parent component** که کامپوننت `Gallery` که فرزندان خودش هست را اجرا یا رندر گیری میکند. این بخشی از جادو ریکت است: که میتوانید کامپوننت را یکبار تعریف کنید و هرچند باری که لازم داشتید صدا بزنید.
177+
چون کامپوننت `Profile` داخل کامپوننت `Gallery` هست و چندین بار هم تکرار شده, و همچنین کامپوننت `Gallery` یک کامپوننت والد یا **parent component** که کامپوننت `Gallery` که فرزندان خودش هست را اجرا یا رندر گیری میکند. این بخشی از جادو ریکت است: که میتوانید کامپوننت را یکبار تعریف کنید و هرچند باری که لازم داشتید صدا بزنید.
178178

179179
<Pitfall>
180180

181-
کامپوننت ها میتوانند کامپوننت های داختلی خود را رندر بگیرند, اما **به هیچ وجه کامپوننت هارا تودرتو تعریف نکنید:**
181+
کامپوننت ها میتوانند کامپوننت های داخلی خود را رندر بگیرند, ولی به این مورد توجه کنید **به هیچ وجه کامپوننت هارا تودرتو تعریف نکنید:**. مثلا:
182182

183183
```js {2-5}
184184
export default function Gallery() {
185-
// 🔴 به هیچ وجه کامپوننتی داخل یک کامپوننت تعریف نشود
185+
// 🔴 به هیچ وجه کامپوننتی داخل یک کامپوننت تعریف نشود
186186
function Profile() {
187187
// ...
188188
}
@@ -209,21 +209,21 @@ function Profile() {
209209

210210
<DeepDive>
211211

212-
#### استفاده از کامپوننت ها {/*components-all-the-way-down*/}
212+
#### استفاده از کامپوننت ها {/*components-all-the-way-down*/}
213213

214214
اپلیکیشن ریکتی شما از کامپوننت `root` شروع میشود. معمولا زمانی که یک پروژه جدید میسازید این کامپوننت ساخته میشود, مثلا اگر شما از [CodeSandbox](https://codesandbox.io/) یا [Create React App](https://create-react-app.dev/) استفاده میکنید, به طور پیش فرض داخل `src/App.js` تعریف شده. اگر از فریمورک [Next.js](https://nextjs.org/) استفاده میکنید, کامپوننت `root` داخل `pages/index.js` تعریف شده است.
215215

216-
اکثر برنامه های ریکتی از کامپوننت استفاده میکنند. به این معنی است که نه تنها از کامپوننت ها برای بخش های کوچکی مانند دکمه استفاده میکنیم, بلکه برای بخش های بزرگتری مانند منو ها یا لیست ها استفاده میکنیم. درکل از کامپوننت ها برای سازماندهی صفحات استفاده میکنیم.
216+
اکثر برنامه های ریکتی از کامپوننت برای سازماندهی بخش های وبسایت استفاده میکنند. چه برای بخش های کوچکی مانند دکمه یا متن ها, چه برای بخش های بزرگتر صفحه مانند منو یا لیست کشویی.
217217

218-
[React-based frameworks](/learn/start-a-new-react-project) کار مارا جلوتر میاندازد. بجای اینکه فایل های HTML برای صفحات سایت تعریف کنیم, با استفاده از فایل های جاوااسکریپتی صفحات را توسعه میدهیم و آنهارا مدیریت میکنیم.
218+
اگر از [React-based frameworks](/learn/start-a-new-react-project) استفاده کنیم, نسبت به تعریف HTML, فرایند توسعه صفحات سریعتر پیش میرود.
219219

220-
همچنان بسیاری از وبسایت ها از React برای [اضافه کردن تعامل در صفحه فعلی.](/learn/add-react-to-an-existing-project#using-react-for-a-part-of-your-existing-page) استفاده میشود. انها بجای یک کامپوننت ریشه از کامپوننت بیشتر و ریزتری استفاده کردند. شما میتوانید هرچقدر که نیاز دارید از کتابخانه ریکت استفاده کنید.
220+
همچنان بسیاری از وبسایت ها از React برای [داینامیک کردن صفحات](/learn/add-react-to-an-existing-project#using-react-for-a-part-of-your-existing-page) استفاده میشود. انها بجای یک کامپوننت root از کامپوننت بیشتر و ریزتری استفاده کردند. شما میتوانید هرچقدر که نیاز دارید از کتابخانه ریکت استفاده کنید.
221221

222222
</DeepDive>
223223

224224
<Recap>
225225

226-
شما اکنون برای اولین بار طعم React را چشیده اید! اجازه بدهید یکسری موارد را درباره آن مرور کنیم:
226+
شما اکنون برای اولین بار طعم React را چشیده اید! اجازه بدهید یکسری موارد را مرور کنیم:
227227

228228
* ریکت به شما اجازه میدهد کامپوننت های خود را, **که اجزایی هستند که میتوان چندین بار داخل اپلیکیشن استفاده کرد .** را توسعه دهید.
229229
* در یک اپلیکیشن ریکتی, هر جایی از صفحه (دراینجا رابط کاربری) یک کامپوننت است.
@@ -286,18 +286,17 @@ img { height: 181px; }
286286

287287
</Sandpack>
288288

289-
شاید برایتان سوال باشد که تنها دستور `export` برای حل مشکل بالا کافی بود. شما میتوانید تفاوت های بین `export` و `export default` را در [import و export کردن یک کامپوننت](/learn/importing-and-exporting-components) بخوانید
289+
شاید برایتان سوال باشد که تنها دستور `export` برای حل مشکل بالا کافی بود. اگر درباره تفاوت های بین `export` و `export default` را نمیدانید, مقاله [import و export کردن یک کامپوننت](/learn/importing-and-exporting-components) بخوانید
290290

291291
</Solution>
292292

293293
#### رفع مشکل دستور return {/*fix-the-return-statement*/}
294294

295-
296295
عبارت `return` در این کد اشتباه است. میتونی درستش کنی؟!
297296

298297
<Hint>
299298

300-
شاید شما در حین رفع مشکل این دستور به ارور "Unexpected token" برخورد کرده باشید. توجه کنید که حتما سمی کالن بعد از پرانتز بسته `return ( )` باشد. درغیراینصورت به ارور برخورد میکنید.
299+
شاید شما در حین رفع مشکل این دستور به ارور "Unexpected token" برخورد کرده باشید. توجه کنید که حتما سمی کالن بعد از پرانتز بسته `() return` باشد. درغیراینصورت به ارور برخورد میکنید.
301300

302301
</Hint>
303302

@@ -358,7 +357,7 @@ img { height: 180px; }
358357

359358
</Solution>
360359

361-
#### Spot the mistake {/*spot-the-mistake*/}
360+
#### ارور را تشخیص دهید {/*spot-the-mistake*/}
362361

363362
کامپوننت `Profile` را در اینجا تعریف کردیم و زمانی که داریم استفاده میکنیم به ما خطا میدهد! به این معنا است که ریکت, کامپوننت را با یک تگ HTML اشتباه گرفته!
364363

@@ -396,7 +395,7 @@ img { margin: 0 10px 10px 0; height: 90px; }
396395

397396
نامگذاری کامپونت های ریکتی حتما باید با حرف بزرگ شروع شود!
398397

399-
دستور `function profile()` را به `function Profile()` تغییر دهید, سپس `<profile />` را `<Profile />` تغییر دهید:
398+
دستور `()function profile` را به `()function Profile` تغییر دهید, سپس `</ profile>` را `</ Profile>` تغییر دهید:
400399

401400
<Sandpack>
402401

0 commit comments

Comments
 (0)