Skip to content

Commit b855f74

Browse files
committed
Needed Changes for sync PR #300 Part 2
1 parent 0a7f92d commit b855f74

13 files changed

+30
-162
lines changed

content/docs/components-and-props.md

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,11 @@ const element = <Welcome name="Sara" />;
7979
root.render(element);
8080
```
8181

82-
<<<<<<< HEAD
83-
[روی CodePen امتحان کنید](codepen://components-and-props/rendering-a-component)
84-
=======
85-
**[Try it on CodePen](https://codepen.io/gaearon/pen/YGYmEG?editors=1010)**
86-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
82+
**[روی CodePen امتحان کنید](https://codepen.io/gaearon/pen/YGYmEG?editors=1010)**
8783

8884
بیایید جمع‌بندی کنیم که در این مثال چه اتفاقی می‌افتد:
8985

90-
<<<<<<< HEAD
91-
۱. ما تابع `ReactDOM.render()` را با المنت `<Welcome name="Sara" />` فرا می‌خوانیم.
92-
=======
93-
1. We call `root.render()` with the `<Welcome name="Sara" />` element.
94-
2. React calls the `Welcome` component with `{name: 'Sara'}` as the props.
95-
3. Our `Welcome` component returns a `<h1>Hello, Sara</h1>` element as the result.
96-
4. React DOM efficiently updates the DOM to match `<h1>Hello, Sara</h1>`.
97-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
86+
۱. ما تابع `root.render()` را با المنت `<Welcome name="Sara" />` فرا می‌خوانیم.
9887

9988
۲. ری‌اکت کامپوننت `Welcome` را به همراه `{name: 'Sara'}` که در ورودی تابع به عنوان `props` تعریف شده است، فرا می‌خواند.
10089

@@ -131,11 +120,7 @@ function App() {
131120
}
132121
```
133122

134-
<<<<<<< HEAD
135-
[روی CodePen امتحان کنید](codepen://components-and-props/composing-components)
136-
=======
137-
**[Try it on CodePen](https://codepen.io/gaearon/pen/KgQKPr?editors=1010)**
138-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
123+
**[روی CodePen امتحان کنید](https://codepen.io/gaearon/pen/KgQKPr?editors=1010)**
139124

140125
معمولا، پروژه‌های جدید ری‌اکت دارای یک کامپوننت `App` واحد در بالاترین سطح هستند. اما اگر شما ری‌اکت را با پروژه‌ای موجود ادغام می‌کنید، می‌توانید از سطوح پایین به بالا طراحی کنید، برای مثال از یک کامپوننت کوچک مانند `Button` شروع کنید و تدریجا تا بالای سلسله مراتب view طراحی را ادامه دهید.
141126

@@ -170,11 +155,7 @@ function Comment(props) {
170155
}
171156
```
172157

173-
<<<<<<< HEAD
174-
[روی CodePen امتحان کنید](codepen://components-and-props/extracting-components)
175-
=======
176-
**[Try it on CodePen](https://codepen.io/gaearon/pen/VKQwEo?editors=1010)**
177-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
158+
**[روی CodePen امتحان کنید](https://codepen.io/gaearon/pen/VKQwEo?editors=1010)**
178159

179160
این کامپوننت author (یک شیء)، text (یک string)، و date (یک تاریخ) را به عنوان props دریافت و یک دیدگاه را در یک شبکه اجتماعی توصیف می‌کند.
180161

@@ -253,11 +234,7 @@ function Comment(props) {
253234
}
254235
```
255236

256-
<<<<<<< HEAD
257-
[روی CodePen امتحان کنید](codepen://components-and-props/extracting-components-continued)
258-
=======
259-
**[Try it on CodePen](https://codepen.io/gaearon/pen/rrJNJY?editors=1010)**
260-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
237+
**[روی CodePen امتحان کنید](https://codepen.io/gaearon/pen/rrJNJY?editors=1010)**
261238

262239
استخراج کامپوننت‌ها شاید در ابتدا به نظر کار سختی بیاید، اما داشتن یک پالت از کامپوننت‌هایی با قابلیت استفاده مجدد در اپ‌های بزرگتر، هزینه آن را باز می‌گرداند. به عنوان یک قانون کلی در نظر داشته باشید که اگر قسمتی از رابط کاربری شما بارها استفاده شده است (نظیر `Button`, `Panel` , `Avatar`) و یا اینکه قسمتی از رابط کاربری پیچیدگی منحصر به فرد خود را دارد (نظیر `App`, `FeedStory`, `Comment`) آن قسمت کاندیدای مناسبی برای استخراج و تبدیل شدن به یک کامپوننت مجزا است.
263240

content/docs/composition-vs-inheritance.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
---
22
id: composition-vs-inheritance
3-
title: Composition vs Inheritance
3+
title: ترکیب در مقابل وراثت
44
permalink: docs/composition-vs-inheritance.html
55
redirect_from:
66
- "docs/multiple-components.html"
77
prev: lifting-state-up.html
88
next: thinking-in-react.html
99
---
10+
1011
ری‌اکت دارای یک مدل ترکیبی (compostion) قدرتمند است. به همین دلیل برای افزایش امکان استفاده مجدد کد بین کامپوننت‌ها، ما استفاده از ترکیب را به جای ارث‌بری پیشنهاد می‌کنیم.
1112

1213
توسعه‌دهنگانی که تازه وارد دنیای ری‌اکت می‌شوند، هنگام مواجه با ارث‌بری دچار مشکلاتی می‌شوند. در این بخش، چند مورد از آن‌ها را بررسی و نشان می‌دهیم که چگونه با استفاده از ترکیب می‌توان آن‌ها را حل کرد.
1314

14-
## در بر گرفتن {#containment}
15+
## دربرگرفتن {#containment}
1516

1617
بعضی از کامپوننت‌ها اطلاعاتی از فرزند خود ندارند. این مورد در کامپوننت‌هایی مانند `Sidebar` یا `Dialog` که مانند یک قاب عمل می‌کنند، مرسوم است.
1718

@@ -168,8 +169,4 @@ class SignUpDialog extends React.Component {
168169

169170
با استفاده از prop و ترکیب کامپوننت‌ها، در طراحی ظاهر و عملکرد کامپوننت‌ها انعطاف‌پذیری لازم را خواهید داشت. به‌خاطر داشته‌باشید که کامپوننت‌ها می‌توانند prop های دلخواهی مثل مقادیر اولیه، المنت‌های ری‌اکت و یا توابع را دریافت کنند.
170171

171-
<<<<<<< HEAD
172172
اگر نیاز دارید قابلیتی که مربوط به UI نمی‌شود را میان کامپوننت‌ها به اشتراک بگذارید، پیشنهاد ما ساخت یک ماژول جاوااسکریپت است. کامپوننت‌های شما می‌توانند آن تابع، آبجکت و یا یک کلاس را import کرده و بدون تغییر یا توسعه آن، از قابلیت‌های آن بهره ببرند.
173-
=======
174-
If you want to reuse non-UI functionality between components, we suggest extracting it into a separate JavaScript module. The components may import it and use that function, object, or class, without extending it.
175-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34

content/docs/conditional-rendering.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,9 @@ function Greeting(props) {
3535
return <GuestGreeting />;
3636
}
3737
38-
<<<<<<< HEAD
39-
ReactDOM.render(
40-
// تغییر isLoggedIn={true} را امتحان کنید
41-
<Greeting isLoggedIn={false} />,
42-
document.getElementById('root')
43-
);
44-
=======
4538
const root = ReactDOM.createRoot(document.getElementById('root'));
46-
// Try changing to isLoggedIn={true}:
39+
// تغییر isLoggedIn={true} را امتحان کنید
4740
root.render(<Greeting isLoggedIn={false} />);
48-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
4941
```
5042

5143
[**روی CodePen امتحان کنید**](https://codepen.io/gaearon/pen/ZpVxNq?editors=0011)

content/docs/faq-styling.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ render() {
4646

4747
_توجه داشته باشید که این عملکرد جزئی از ری اکت نمی باشد، بلکه توسط کتابخانه های شخص ثالث ارائه شده._ ری اکت هیچ نظری درباره نحوه ی تعریف استایل ها ندارد؛ اگر شک و شبهه ای دارید، یک نقطه شروع خوب این است که استایل های خود را درون فایل جداگانه `*.css` تعریف کرده و طبق معمول با استفاده از [`className`](/docs/dom-elements.html#classname) به آن ها مراجعه کنید.
4848

49-
50-
<<<<<<< HEAD
5149
### آیا می توانم با ری اکت انیمیشن انجام دهم؟ {#can-i-do-animations-in-react}
5250

5351
ری اکت میتواند برای قدرت بخشیدن به انیمیشن ها استفاده شود. به مثال های [React Transition Group](https://reactcommunity.org/react-transition-group/) و [React Motion](https://github.com/chenglou/react-motion) یا [React Spring](https://github.com/react-spring/react-spring)، نگاه بیاندازید.
54-
=======
55-
React can be used to power animations. See [React Transition Group](https://reactcommunity.org/react-transition-group/), [React Motion](https://github.com/chenglou/react-motion), [React Spring](https://github.com/react-spring/react-spring), or [Framer Motion](https://framer.com/motion), for example.
56-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34

content/docs/handling-events.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,7 @@ class Toggle extends React.Component {
9292

9393
این رفتار مختص به ری‌اکت نیست. این جزئی از [چگونگی کارکرد توابع در جاوااسکریپت](https://www.smashingmagazine.com/2014/01/understanding-javascript-function-prototype-bind/) است. عموما، اگر شما بدون `()` بعد از آن به یک تابع اشاره کنید، مانند `onClick={this.handleClick}`، شما باید آن متد را bind کنید.
9494

95-
<<<<<<< HEAD
96-
اگر فراخوانی `bind` شما را آزار می‌دهد، دو راه برای دور زدن ان وجود دارد. اگر شما از [قاعده فیلدهای عمومی کلاس](https://babeljs.io/docs/plugins/transform-class-properties/) استفاده می‌کنید، می‌توانید از فیلدهای کلاس برای bind کردن صحیح callback ها استفاده کنید.
97-
=======
98-
If calling `bind` annoys you, there are two ways you can get around this. You can use [public class fields syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields) to correctly bind callbacks:
99-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
95+
اگر فراخوانی `bind` شما را آزار می‌دهد، دو راه برای دور زدن ان وجود دارد. اگر شما از [قاعده فیلدهای عمومی کلاس](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields) استفاده می‌کنید، می‌توانید از فیلدهای کلاس برای bind کردن صحیح callback ها استفاده کنید.
10096

10197
```js{2-6}
10298
class LoggingButton extends React.Component {

content/docs/hello-world.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ root.render(<h1>Hello, world!</h1>);
1515

1616
این مثال یک عنوان را روی صفحه نمایش می‌دهد که می‌گوید: "Hello, world!"
1717

18-
<<<<<<< HEAD
19-
**[روی CodePen امتحان کنید](codepen://hello-world)**
20-
=======
21-
**[Try it on CodePen](https://codepen.io/gaearon/pen/rrpgNB?editors=1010)**
22-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
18+
**[روی CodePen امتحان کنید](https://codepen.io/gaearon/pen/rrpgNB?editors=1010)**
2319

2420
روی لینک بالا کلیک کنید تا یک ویرایشگر آنلاین باز شود. هر تغییری که می‌خواهید اعمال کنید و تاثیر آن را بر خروجی مشاهده کنید. بیشتر صفحات در این راهنما، مثال‌های قابل ویرایشی مانند بالا دارند.
2521

content/docs/hooks-intro.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,8 @@ function Example() {
3131

3232
> نکته
3333
>
34-
<<<<<<< HEAD
35-
> ری‌‌اکت ۱۶.۸.۰ اولین نسخه منتشر شده است که از هوک‌‌ها پشتیبانی می‌‌کند. هنگام ارتقاع، فراموش نکنید همه‌‌ی پکیج‌‌ها شامل React DOM را به‌روز رسانی نمایید.
34+
> ری‌‌اکت ۱۶.۸.۰ اولین نسخه منتشر شده است که از هوک‌‌ها پشتیبانی می‌‌کند. هنگام ارتقاء، فراموش نکنید همه‌‌ی پکیج‌‌ها شامل React DOM را به‌روز رسانی نمایید.
3635
> ری‌اکت نیتیو از زمان [انتشار نسخه ۰.۵۹](https://reactnative.dev/blog/2019/03/12/releasing-react-native-059) از هوک‌ها پشتیبانی می‌کند.
37-
=======
38-
>React 16.8.0 is the first release to support Hooks. When upgrading, don't forget to update all packages, including React DOM.
39-
>React Native has supported Hooks since [the 0.59 release of React Native](https://reactnative.dev/blog/2019/03/12/releasing-react-native-059).
40-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
4136
4237
## معرفی تصویری {#video-introduction}
4338

content/docs/react-without-es6.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,7 @@ var SayHello = createReactClass({
134134

135135
این یعنی نوشتن کلاس‌های ES6 همراه با کمی کد boilerplate برای مدیریت کننده‌های رویداد است، اما مزیت آن این است که عملکرد بهتری در اپلیکیشن‌های بزرک دارد.
136136

137-
<<<<<<< HEAD
138-
اگر کد boilerplate برای شما جذاب نیست، می‌توانید پیشنهاد نحوی **experimental** در [Class Properties](https://babeljs.io/docs/plugins/transform-class-properties/) را در Babel فعال کنید:
139-
=======
140-
If the boilerplate code is too unattractive to you, you may use [ES2022 Class Properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields) syntax:
141-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
137+
اگر کد boilerplate برای شما خیلی جذاب نیست، می توانید از سینتکس [ES2022 Class Properties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields) استفاده کنید:
142138

143139

144140
```javascript
@@ -163,13 +159,7 @@ class SayHello extends React.Component {
163159
}
164160
```
165161

166-
<<<<<<< HEAD
167-
لطفا در نظر داشته باشید که قاعده بالا **experimental** است و ممکن است تغییر کند، یا ممکن است این پیشنهاد وارد زبان نشود.
168-
169-
اگر ترجیح می‌دهید که در امنیت باشید، چند انتخاب دارید:
170-
=======
171-
You also have a few other options:
172-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
162+
شما همچنین چند گزینه دیگر دارید:
173163

174164
* متدها را در سازنده bind کنید.
175165
* از arrow function ها استفاده کنید، برای مثال `onClick={(e) => this.handleClick(e)}`.

content/docs/reference-dom-elements.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,7 @@ function ComponentWithTransition() {
114114

115115
اگر از rendering سمت سروری ری‌اکت استفاده می‌کنید، در صورتی که محتوای render شده کلاینت با محتوای render شده سرور متفاوت باشد، هشداری دریافت می‌کنید. البته، در برخی موارد خیلی سخت است که دقیقا با همدیگر جور بشوند. برای مثال timestamp ها بین سرور و کلاینت متفاوت خواهند بود.
116116

117-
<<<<<<< HEAD
118-
اگر شما `suppressHydrationWarning` را برای المنتی `true` کنید، ری‌اکت برای مغایرت‌های صفات و محتوای آن المنت به شما هشدار نخواهد داد. فقط تا یک سطح از عمق کار خواهد کرد، و این هم به منظور یک راه فرار است، زیاد از آن استفاده نکنید. شما می‌توانید در مورد hydration در [اسناد `ReactDOM.hydrate()`](/docs/react-dom.html#hydrate) بیشتر بخوانید.
119-
=======
120-
If you set `suppressHydrationWarning` to `true`, React will not warn you about mismatches in the attributes and the content of that element. It only works one level deep, and is intended to be used as an escape hatch. Don't overuse it. You can read more about hydration in the [`ReactDOM.hydrateRoot()` documentation](/docs/react-dom-client.html#hydrateroot).
121-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
117+
اگر شما `suppressHydrationWarning` را برای المنتی `true` کنید، ری‌اکت برای مغایرت‌های صفات و محتوای آن المنت به شما هشدار نخواهد داد. فقط تا یک سطح از عمق کار خواهد کرد، و این هم به منظور یک راه فرار است، زیاد از آن استفاده نکنید. شما می‌توانید در مورد hydration در [اسناد `ReactDOM.hydrateRoot()`](/docs/react-dom-client.html#hydrateroot) بیشتر بخوانید.
122118

123119
### value {#value}
124120

content/docs/reference-javascript-environment-requirements.md

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,13 @@ category: Reference
66
permalink: docs/javascript-environment-requirements.html
77
---
88

9-
<<<<<<< HEAD
10-
ری‌اکت 16 به مجموعه(Collection) های [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) و [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) وابسته است. اگر در برنامه خود از مرورگرها و دستگاه‌های قدیمی پشتیبانی می‌کنید که ممکن است هنوز این موارد را به طور پیش فرض ارائه ندهند(به عنوان مثال IE <11) یا دارای پیاده‌سازی های غیر سازگار هستند (به عنوان مثال IE 11)، اضافه کردن یک برنامه چندکاره سراسری(global polyfill) مانند [core-js](https://github.com/zloirock/core-js) را به برنامه خود در نظر بگیرید.
9+
ری‌اکت ۱۸ از تمام مرورگرهای مدرن (Edge، Firefox، Chrome، Safari و غیره) پشتیبانی می کند.
1110

12-
یک محیط چندکاره(polyfilled environment) برای ری‌اکت 16 با استفاده از core-js برای پشتیبانی از مرورگرهای قدیمی به صورت زیر است:
13-
=======
14-
React 18 supports all modern browsers (Edge, Firefox, Chrome, Safari, etc).
11+
اگر از مرورگرها و دستگاه‌های قدیمی‌تری مانند اینترنت اکسپلورر که ویژگی‌های مرورگر مدرن را به‌صورت بومی ارائه نمی‌کنند یا پیاده‌سازی‌های ناسازگاری دارند، پشتیبانی می‌کنید، در برنامه همراه خود یک polyfill سراسری اضافه کنید.
1512

16-
If you support older browsers and devices such as Internet Explorer which do not provide modern browser features natively or have non-compliant implementations, consider including a global polyfill in your bundled application.
17-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
18-
19-
Here is a list of the modern features React 18 uses:
13+
در اینجا لیستی از ویژگی های مدرن مورد استفاده ری‌اکت ۱۸ آمده است:
2014
- [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
2115
- [`Symbol`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
2216
- [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
2317

24-
<<<<<<< HEAD
25-
import React from 'react';
26-
import ReactDOM from 'react-dom';
27-
28-
ReactDOM.render(
29-
<h1>Hello, world!</h1>,
30-
document.getElementById('root')
31-
);
32-
```
33-
34-
ری‌اکت همچنین به `requestAnimationFrame` وابستگی دارد(حتی در محیط تست).
35-
شما می‌توانید از پکیج [raf](https://www.npmjs.com/package/raf) برای حل وابستگی `requestAnimationFrame` استفاده کنید :
36-
37-
```js
38-
import 'raf/polyfill';
39-
```
40-
=======
41-
The correct polyfill for these features depend on your environment. For many users, you can configure your [Browserlist](https://github.com/browserslist/browserslist) settings. For others, you may need to import polyfills like [`core-js`](https://github.com/zloirock/core-js) directly.
42-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
18+
پلی‌فیل صحیح برای این ویژگی ها به محیط شما بستگی دارد. برای بسیاری از کاربران، می‌توانید تنظیمات [Browserlist](https://github.com/browserslist/browserslist) خود را پیکربندی کنید. برای دیگران، ممکن است نیاز داشته باشید که polyfillهایی مانند [`core-js`](https://github.com/zloirock/core-js) را مستقیماً ایمپورت کنید.

0 commit comments

Comments
 (0)