Repository navigation
@c0m1t - Hook intro - #12
Conversation
zahrajoulaei
left a comment
There was a problem hiding this comment.
نظر من اینه که هدف ما صرفا ترجمه ی سریع و بدون توجه یک صفحه نیست!
اصلا اصراری نداریم خیلی سریع کل یک صفحه رو سرهم کنیم اما کیفیتی توش نبینیم.
من پیشنهاد میکنم خودتون رو بزارین جای دانشجو و دانش آموزی که به دلیل خوب نبودن سطح زبانش مجبور شده به صفحه فارسی رجوع کنه، و در مرحله ی بعد کسی رو تصور کنید که زبانش هم خوبه اما انقدر ترجمه ی فارسی ری اکت رو با کیفیت دیده که تصمیم گرفته فارسیش رو بخونه!
پس لطفا جوری بنویسید که تمام متن موقع خوندن قابل فهم باشه و احترام به شعور خواننده باشه و در افراد انگیزه و شوق ادامه رو ایجاد کنه
با تشکر
| At React Conf 2018, Sophie Alpert and Dan Abramov introduced Hooks, followed by Ryan Florence demonstrating how to refactor an application to use them. Watch the video here: | ||
| <blockquote dir="rtl"> | ||
| <p>نکته</p> | ||
| <p>ریاکت ۱۶.۸.۰ اولین نسخه منتشر شده است که از هوکها پشتیبانی میکند. هنگام ارتقاع، فراموش نکنید همهی پکیجها شامل React DOM را آپدیت نمایید. React Native در نسخهی بعدی پایدار از هوکها پشتیبانی خواهد کرد. </p> |
There was a problem hiding this comment.
@c0m1t @sorousht
از املای این کلمه مطمین هستین؟
من فکر میکنم ارتقاء درست باشد.
http://www.vajehyab.com/dehkhoda/%D8%A7%D8%B1%D8%AA%D9%82%D8%A7%D8%A1
| </svg></a>معرفی ویدیویی </h2> | ||
|
|
||
| ## No Breaking Changes {#no-breaking-changes} | ||
| <p dir="rtl">در کنفرانس ۲۰۱۸ react، سوفیا آلپرت(Sophie Alpert) و دن آبرامف(Dan Abramov) هوکها را معرفی کردند. بعد از آن رایان فلورنس (Ryan Florence) نشان داد که چگونه میتوان به منظور استفاده از آنها[هوکها] یک اپلیکیشن را بازنویسی(refactor) کرد. ویدیوی زیر را ببینید:</p> |
|
|
||
| ## Motivation {#motivation} | ||
| <ul dir="rtl"> | ||
| <li><strong>کاملا اختیاری.</strong> شما میتوانید هوکها را بدون نیاز به دوباره نوشتن کدهای قبلی، در چند کامپوننت جدید امتحان کنید. ولی شما در صورت عدم تمایل، مجبور به فراگیریی یا استفاده از هوکها کنید.</li> |
| <h3 dir="rtl" id="its-hard-to-reuse-stateful-logic-between-components"><a href="#its-hard-to-reuse-stateful-logic-between-components" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>استفادهی مجدد از منطق دارای state در بین کامپوننتها دشوار است</h3> | ||
|
|
||
| ### Complex components become hard to understand {#complex-components-become-hard-to-understand} | ||
| <p dir="rtl">ریاکت راهی برای «اضافهکردن» یک رفتار قابل استفادهی مجدد یه یک کامپوننت را فراهم نمیکند (برای مثال اتصال به یک store). اگر شما مدتی با ریاکت کار کرده باشید، ممکن است با الگوهایی مانند <a href="/docs/render-props.html">render props</a> و <a href="/docs/higher-order-components.html">higher-order components</a> آشنا باشید که سعی در حل این مسیله دارند. اما این الگوها شما را مجبور به تغییر ساختار مجدد کامپوننتتان هنگام استفاده از آنها میکنند، که این مسیله میتواند مایهی زحمت و سختتر شدن فهم کد باشد. اگر به یک اپلیکیشن ریاکت نوعی در React DevTools نگاه کنید، احتمالا با «wrapper hell»ای از کامپوننتها مواجه میشوید. کامپوننتهایی که با لایههایی از providerها، consumerها، HOCها، render props و دیگر کامپوننتهایی که به تجرید کمک میکنند، احاطه شدهاند. در حالی که ما میتوانیم <a href="https://github.com/facebook/react-devtools/pull/503">آنها را در DevTools فیلتر کنیم</a>، این [مشکل] به یک مسیلهی بنیادین اشاره دارد: ریاکت باید عناصری ابتدایی برای به اشتراک گذاری منطق دارای state فراهم کند.</p> |
There was a problem hiding this comment.
احتمالا با «wrapper hell»ای از کامپوننتها مواجه میشوید
@sorousht پیشنهادی برای جایگزینی این قسمت نداری؟
نظر من اینه که این نوع ترجمه اصلا کمکی به فهم خواننده نمیکنه و بدتر گیجش میکنه.
There was a problem hiding this comment.
خود من موقع یادگیری ریاکت از روی داکیومنتیشن، به یه سری چیزای اینطوری بر خوردم که مجبور شدم برم و از سورسهای دیگه نگاه کنم. ولی قطعا این خیلی خوبه که داکیومنتیشن طوری کامل باشه که مخاطب با خوندنش بدون نیاز به منابع خارجی بتونه کلیت همه چی رو بفهمه.
برای wrapper hell معادل فارسیای ندارم ولی اگه هدف صرف ترجمه نباشه و امکان اضافه کردن توضیحات یا عکس برای رسوندن بیشتر مفهوم امکانپذیر باشه، میشه این قسمت رو بهبود داد.
| <p dir="rtl">با استفاده از هوکها، شما میتوانید بخش منطق دارای state را از یک کامپوننت استخراج کنید، بطوری که بطور مستقل بتواند مورد آزمایش و استفادهی مجدد قرار گیرد. <strong>هوک ها به شما اجازه میدهند که بدون ایجاد تغییر در سلسله مراتب کامپوننتهایتان، از منطق دارای state مجددا استفاده نمایید.</strong> این کار باعث تسهیل در به اشتراکگذاری هوکها بین کامپوننتهای مختلف یا بین جامعه[ی ریاکت] میشود.</p> | ||
|
|
||
| In many cases it's not possible to break these components into smaller ones because the stateful logic is all over the place. It's also difficult to test them. This is one of the reasons many people prefer to combine React with a separate state management library. However, that often introduces too much abstraction, requires you to jump between different files, and makes reusing components more difficult. | ||
| <p dir="rtl">ما در این رابطه بیشتر در <a href="/docs/hooks-custom.html">هوک مخصوص خود را بسازید</a> بحث خواهیم کرد.</p> |
There was a problem hiding this comment.
.ما در این رابطه بیشتر در فلان بخش بحث خواهیم کرد
بنظر من مشکلی نداره البته اگر پیشنهادی دارین حتما بگین
| <p dir="rtl">علاوه بر دشوار کردن قابلیت استفاده مجدد از کد و نظم آن، دریافتیم که کلاسها میتوانند مانع بزرگی در یادگیری ریاکت باشند. شما باید یادبگیرید که <code class="gatsby-code-text">this</code> چگونه در جاوااسکریپت کار میکند، که با نحوهی کار کردش در اکثر زبانها بسیار متفاوت است. شما باید به یاد داشته باشید تا event handlerها را bind کنید. بدون <a href="https://babeljs.io/docs/en/babel-plugin-transform-class-properties/">syntax proposals</a>، کد بسیار طولانی خواهد بود. آدمها میتوانند props، state، و جریان بالا به پایین داده را کاملا دریابند ولی هنوز با کلاسها کلنجار بروند. برتری کامپوننت از جنس تابع یا کلاس در ریاکت و موارد استفاده از آنها باعث اختلاف نظر است، حتی در میان دولوپرهای با تجربهی ریاکت.</p> | ||
|
|
||
| ## Gradual Adoption Strategy {#gradual-adoption-strategy} | ||
| <p dir="rtl">بعلاوه، ریاکت ۵ سال است که عرضه شده است، و ما میخواهیم در ۵ سال آینده مطرح باشد. همانطور که <a href="https://svelte.technology/">Svelte</a>، <a href="https://angular.io/">Angular</a>،<a href="https://glimmerjs.com/">Glimmer</a>و دیگران نشان میدهند، <a href="https://en.wikipedia.org/wiki/Ahead-of-time_compilation">کامپایل پیش از موعد</a> کامپوننتها، پتانسیل قابلیتهای زیادی را دارد. بالاخص اگر به تمپلتها مححدود نباشد. ما اخیرا با |
| <p dir="rtl">همچنین اطلاع داریم که انتظارات برای اضافه کردن دستورات پایهی جدید به ریاکت بسیار بالاست. ما برای خوانندههای کنجکاو یک <a href="https://github.com/reactjs/rfcs/pull/68">RFC با جزییات</a> آماده کردهایم که با عمق بیشتری به انگیزهها میپردازد، و دید بیشتری بر تصصمیمات جزیی تصمیمگیریها و تصمیمات مرتبط قبلی فراهم میکند. </p> | ||
|
|
||
| ## Frequently Asked Questions {#frequently-asked-questions} | ||
| <p dir="rtl"><strong>اساسا، هوک ها در کنار کدهای نوشتهشده از قبل کار خواهند کرد، پس شما میتوانید بصورت تدریجی از آنها بهره گیرید.</strong> ما این API آزمایشی را برای این به اشتراک میگذاریم تا بتوانیم از بازخوردهای سریع افراد در جامعه که برای شکل دادن به آیندهی ریاکت مشتاق هستند بهره گیریم. — and we will iterate on Hooks in the open.</p> |
There was a problem hiding this comment.
and we will iterate on Hooks in the open
دلیل ترجمه نکردن این بخش چیست؟
There was a problem hiding this comment.
ما بصورت عمومی سعی در بهبود هوکها داریم؟
| <p dir="rtl"><strong>اساسا، هوک ها در کنار کدهای نوشتهشده از قبل کار خواهند کرد، پس شما میتوانید بصورت تدریجی از آنها بهره گیرید.</strong> ما این API آزمایشی را برای این به اشتراک میگذاریم تا بتوانیم از بازخوردهای سریع افراد در جامعه که برای شکل دادن به آیندهی ریاکت مشتاق هستند بهره گیریم. — and we will iterate on Hooks in the open.</p> | ||
|
|
||
| We've prepared a [Hooks FAQ page](/docs/hooks-faq.html) that answers the most common questions about Hooks. | ||
| <p dir="rtl">در انتها، هیچ عجلهای برای مهاجرت به هوکها وجود ندارد. ما پیشنهاد میکنیم از هرگونه «بازنویسی بزرگ» بپرهیزید، مخصوصا برای کامپوننتهای کلاسی موجود و پیچیده. برای «تفکر مبتنی بر هوکها» مقداری نیازمند تامل است. تجربهی ما این است که بهترین کار برای شروع، تمرین و کار با هوکها در کامپوننتهای جدید و غیرحیاتی است، و حصول اطمینان از اینکه همهی افراد تیم شما با آنها ارتباط برقرار کردهاند. بعد از اینکه هوکها را امتحان کردید، لطفا <a href="https://github.com/facebook/react/issues/new">بازخوردهای خود را برای ما بفرستید</a> ، چه مثبت و چه منفی.</p> |
There was a problem hiding this comment.
برای «تفکر مبتنی بر هوکها» مقداری نیازمند تامل است.
ساختار این جمله غلط است!
There was a problem hiding this comment.
تفکر مبتنی بر هوکها نیازمند تغییر در نگرش ماست
Sync with reactjs.org @ 99e97c3
|
@zahrajoulaei It's been a long time since @c0m1t have opened this PR. I know it isn't well written and does not meet our standards for being published, so I'm going to retouch and improve as much as possible by tonight. |
This PR was originally made by @c0m1t. Because he/she targeted master directly, I had to close the original one, and submit this PR to
fabranch.