You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/hooks-intro.md
+4-11Lines changed: 4 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,8 +37,9 @@ function Example() {
37
37
## معرفی تصویری {#video-introduction}
38
38
39
39
در کنفرانس ریاکت ۲۰۱۸، سوفی آلپرت (Sophie Alpert) و دن آبراموف (Dan Abramov) هوکها را معرفی کردند. و در ادامه رایان فلورنس (Ryan Florence) نشان داد که چگونه میتوان یک برنامه را بازنویسی کرد که از هوکها استفاده کند. ویدیو آن را مشاهده کنید:
### کلاسها هم انسان و هم کامپیوتر را گیج میکنند {#classes-confuse-both-people-and-machines}
80
81
81
-
علاوهبر اینکه کلاسها استفاده مجدد کدها و مدیریت آنها را دچار مشکل میکنند، دریافتیم که آنها میتوانند مانع بزرگی در یادگیری ریاکت باشند. شما باید یادبگیرید که `this` چگونه در جاوااسکریپت کار میکند، که با کارکرد آن در بیشتر زبانها بسیار متفاوت است. شما باید به یاد داشته باشید تا event handlerها را bind کنید. بدون [پلاگین پیشنهاد برای نوشتن propertyهای یک کلاس (هنوز پایدار نیست!)](https://babeljs.io/docs/en/babel-plugin-transform-class-properties/)، کد بسیار طولانی خواهد بود. آدمها میتوانند props، state، و جریان بالا به پایین داده را کاملا دریابند درحالیکه هنوز با کلاسها کلنجار میروند. در مقایسه بین کامپوننت از جنس تابع یا کلاس و موارد استفاده از آنها، حتی بین توسعهدهندههای با تجربهی ریاکت هم اختلافنظر وجود دارد.
82
+
علاوهبر اینکه کلاسها استفاده مجدد کدها و مدیریت آنها را دچار مشکل میکنند، دریافتیم که آنها میتوانند مانع بزرگی در یادگیری ریاکت باشند. شما باید یادبگیرید که `this` چگونه در جاوااسکریپت کار میکند، که با کارکرد آن در بیشتر زبانها بسیار متفاوت است. شما باید به یاد داشته باشید تا event handlerها را bind کنید. بدون [ES2022 public class fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields)، کد بسیار طولانی خواهد بود. آدمها میتوانند props، state، و جریان بالا به پایین داده را کاملا دریابند درحالیکه هنوز با کلاسها کلنجار میروند. در مقایسه بین کامپوننت از جنس تابع یا کلاس و موارد استفاده از آنها، حتی بین توسعهدهندههای با تجربهی ریاکت هم اختلافنظر وجود دارد.
82
83
83
-
<<<<<<< HEAD
84
84
افزون بر این، ریاکت ۵ سال است که عرضه شده است، و ما میخواهیم در ۵ سال آینده هم مطرح باشد. همانطور که [Svelte](https://svelte.technology/) ،[Angular](https://angular.io/)، [Glimmer](https://glimmerjs.com/) و دیگران نشان میدهند، [کامپایل پیش از موعد (ahead-of-time compilation)](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) کامپوننتها، پتانسیل زیادی را دارد. مخصوصا اگر به templateها محدود نباشد. ما اخیرا با
85
85
[component folding](https://github.com/facebook/react/issues/7323) بوسیلهی [Prepack](https://prepack.io/) آزمایشاتی را انجام دادیم که شاهد نتایج سریع و امیدوارکنندهای بودهایم. اگرچه دریافتیم که کامپوننتهای برپایه کلاس میتوانند ناخواسته باعث افزایش الگوهایی شوند که چنین بهینهسازیهایی را خراب میکنند. کلاسها برای ابزارهای امروزی نیز مشکلاتی ایجاد میکنند. برای مثال، کلاسها به خوبی minify نمیشوند، همچنین باعث میشوند تا hot reloading شکننده و نامطمئن شود. ما میخواهیم APIای را ارائه دهیم که به کد امکان بهینهسازی بیشتری بدهد.
86
-
=======
87
-
In addition to making code reuse and code organization more difficult, we've found that classes can be a large barrier to learning React. You have to understand how `this` works in JavaScript, which is very different from how it works in most languages. You have to remember to bind the event handlers. Without [ES2022 public class fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields), the code is very verbose. People can understand props, state, and top-down data flow perfectly well but still struggle with classes. The distinction between function and class components in React and when to use each one leads to disagreements even between experienced React developers.
88
-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
89
86
90
87
برای حل این مشکلات، **هوکها به شما اجازه میدهند تا از بیشتر قابلیتهای ریاکت بدون کلاسها بهره ببرید.** از نظر مفهومی، همیشه کامپوننتهای ریاکت بیشتر به توابع نزدیک بودهاند. هوکها بدون آنکه روح کاربردی ریاکت را فداکند، از توابع بهره میبرند. استفاده از هوکها ساده است و شما به یادگیری مهارتهای پیچیده برنامه نویسی تابعگرا (functional) و واکنشگرا (reactive) ندارید.
91
88
@@ -99,11 +96,7 @@ In addition to making code reuse and code organization more difficult, we've fou
99
96
100
97
ما میدانیم که توسعهدهندههای ریاکت روی عرضهی محصولات تمرکز دارند و وقتی برای مطالعه هر API جدیدی که منتشر میشود را ندارند. هوکها خیلی تازه هستند، و شاید برای یادگیری و بهرهگیری از آنها بهتر باشد تا برای مثالها و آموزشهای بیشتر صبر کنید.
101
98
102
-
<<<<<<< HEAD
103
99
ما همچنین اطلاع داریم که انتظارات برای اضافه کردن دستورات پایهی جدید به ریاکت بسیار بالاست. ما برای خوانندههای کنجکاو، [یک RFC با جزییات](https://github.com/reactjs/rfcs/pull/68) آماده کردهایم که با عمق بیشتری به ایدهها میپردازد، و چشمانداز گستردهای بر تصمیمات مشخصی در طراحی فعلی و پیشین فراهم میکند.
104
-
=======
105
-
We also understand that the bar for adding a new primitive to React is extremely high. For curious readers, we have prepared a [detailed RFC](https://github.com/reactjs/rfcs/pull/68) that dives into the motivation with more details, and provides extra perspective on the specific design decisions and related prior art.
106
-
>>>>>>> 664dd5736287e01a4557cd03c9a8736682911b34
107
100
108
101
**اساسا، هوک ها در کنار کدهای نوشتهشده از قبل کار خواهند کرد، پس شما میتوانید بهصورت تدریجی از آنها بهره گیرید.** عجلهای برای مهاجرت به هوکها نیست! ما پیشنهاد میکنیم که از بازنویسیهای کلان کد خود، به خصوص کامپوننتهایی پیچیدهای که با کلاس نوشته شدهاند پرهیز کنید. تفکر به شیوه هوکها نیازمند کمی تغییر در شیوه تفکر است. بر اساس تجربه ما، بهتر است که استفاده از هوکها را در کامپوننتهای کماهمیت و تازه تمرین کنید و مطمئن شوید که همه اعضای تیم با آنها احساس راحتی میکنند. بعد از اینکه هوکها را امتحان کردید، [بازخوردهای خود را برای ما ارسال کنید](https://github.com/facebook/react/issues/new)، چه مثبت، چه منفی!
109
102
@@ -115,4 +108,4 @@ We also understand that the bar for adding a new primitive to React is extremely
115
108
116
109
## گامهای بعدی {#next-steps}
117
110
118
-
در انتهای این صفحه، شما باید ایدهای کلی از اینکه هوکها چه مشکلی را حل میکنند به دست آورده باشید، اما احتمالا هنوز جزییات برای شما واضح نیست. نگران نباشید! **حالا بیایید به [صفحه بعد](/docs/hooks-overview.html) برویم و یادگیری هوکها رو با مثال شروع کنیم**.
111
+
در انتهای این صفحه، شما باید ایدهای کلی از اینکه هوکها چه مشکلی را حل میکنند به دست آورده باشید، اما احتمالا هنوز جزییات برای شما واضح نیست. نگران نباشید! **حالا بیایید به [صفحه بعد](/docs/hooks-overview.html) برویم و یادگیری هوکها رو با مثال شروع کنیم**.
0 commit comments