دیجی رودیجی رو
  • اخبار تکنولوژی
    • اخبار داخلی
    • اخبار تلفن همراه
    • اخبار سخت افزار
    • اخبار اپلیکیشن‌ها
  • آموزش
  • بررسی محصولات
  • راهنمای خرید
  • سرگرمی
    • اخبار بازی
    • معرفی بازی
      • بازی موبایل
      • بازی دسکتاپ
      • بازی کنسول
    • معرفی اپلیکیشن
    • سینما و تلویزیون
  • دیجی فکت
  • دیجی لایف
  • دیجی10
  • مقالات گوناگون
خواندن: ری اکت چیست و چرا باید از آن استفاده کرد؟
به اشتراک بگذارید
ورود
اعلان نمایش بیشتر
تغییر اندازه فونتآآ
دیجی رودیجی رو
تغییر اندازه فونتآآ
جستجو
حساب کاربری دارید؟ ورود
دنبال کردن
تمامی حقوق برای رسانه دیجی‌رو محفوظ است. 1403 ©
دیجی رو > آموزش > آموزش‌های تخصصی > ری اکت چیست و چرا باید از آن استفاده کرد؟
آموزش‌های تخصصی

ری اکت چیست و چرا باید از آن استفاده کرد؟

شایان تقی‌نژاد 8 اسفند 1397 ساعت 17:09
زمان مطالعه: 9 دقیقه
ری اکت چیست؟
اشتراک گذاری
بلیط هواپیما سفرمارکت

ری اکت کتابخانه‌ای است که به توسعه‌دهندگان کمک می‌کند تا واسطهای کاربری (UI) را به شکل درختی از اجزای کوچک با نام کامپوننت‌ها ایجاد کنند. یک کامپوننت ترکیبی از اچ‌تی‌ام‌ال و جاوااسکریپت است و تمام منطق مورد نیاز برای نمایش قسمت کوچکی از یک واسط کاربری بزرگ‌تر را در خود دارد. هر کدام از این کامپوننت‌ها می‌توانند به بخش‌های پیچیده‌تر یک اپ اضافه شوند. بقیه‌اش هم جزئیات است.

در این مطلب به رابطه‌ی ری اکت با جاوااسکریپت و اچ‌تی‌ام‌ال نگاهی می‌اندازیم. برای کسانی که با کدنویسی سر و کار دارند این مقاله کمک می‌کند تا آمادگی لازم برای برخی از مفاهیم پیچیده‌تر را پیدا کنند.

یک مثال کوتاه

ممکن است کامپوننت Button در کامپوننت NavigationBar قرار گرفته باشد، و خود این کامپوننت نیز نیز بخشی از کامپوننت Homepage باشد. تصویر زیر نحوه‌ی تجزیه‌ی اجزای صفحه‌ی کارتون نیویورکر را نمایش می‌دهد.

ری اکت چیست؟

اگر بخواهیم مثال واضح‌تری داشته باشیم، هنگام ایجاد یک فهرست کاری، مثالی رایج درپروژه‌های جاوااسکریپت، ممکن است کامپوننتی با نام Todo و به شرح زیر داشته باشم:

/**
 * An individual ToDo item
 * @param {Object}  props
 * @param {String}  props.todoItem  A ToDo
 */
const Todo = ({ todoItem }) => (
  <li>{ todoItem.text }</li>
);

و یک کامپوننت TodoList به شرح زیر:

/**
* A todoList with a Todo for each item in todoListData
* @param {Object} props
* @param {Array.<String>} props.todoListData A List of ToDos
*/
const TodoList = ({ todoListData }) => {
  const todoListItems = todoListData
    .map(todo => <Todo todo={todo} />);

  return <ul>{todoListItems}</ul>;
};

اگر با جاوااسکریپت یا حتی کدنویسی آشنایی ندارید زیاد نگران نباشید، این مقاله بیشتر روی مفاهیم متمرکز است. اولین قطعه‌ی کد رویه‌ای با نام Todo را ایجاد می‌کند و زمانی که اجرا شود مقدار اچ‌تی‌ام‌ال <li> را بازگشت می‌دهد که ویژگی text عنصر todoItem را درون خود دارد. دومین قطعه‌ی کد آرایه‌ای از Todo ها را با استفاده از داده‌ی فهرست کارها ایجاد می‌کند و آن‌ها را درون یک <ul> قرار می‌دهد.

مثال قبلی با استفاده از JSX نوشته شده است، افزونه‌ای مختص سینتکس جاوااسکریپت که به توسعه‌دهندگان اجازه می‌دهد جاوااسکریپت را با اچ‌تی‌ام‌ال ترکیب کنند. با استفاده از JSX، یک کامپوننت ری اکت به نحوی نوشته می‌شود که انگار یک تگ سفارشی‌شده‌ی اچ‌تی‌ام‌ال است. کامپوننت‌های ری اکت معمولاً با استفاده از JSX نوشته می‌شوند اما با این حال نوشتن آن‌ها بدون JSX نیز ممکن است. حتی اگر متوجه تمام قسمت‌های کدهای بالایی نمی‌شوید، نکته‌ی مهم این است که هر دوی این کامپوننت‌ها یک عنصر اچ‌تی‌ام‌ال یا کامپوننت دیگری از ری اکت را بر می‌گردانند و اینکه خروجی کاملاً وابسته به داده‌های ورودی است.

اگر داده‌های زیر را وارد کامپوننت TodoList خود می‌کردیم:

const todos = [
  { text: "Go for a run" },
  { text: "Cook dinner at home" },
  { text: "Call Dentist" }
];
const app = <TodoList todoListData={todos} />;
const targetDOMElement = document.getElementById("app-root");
ReactDOM.render(app, targetDOMElement);

یک قطعه‌ی اچ‌تی‌ام‌ال به شکل زیر دریافت می‌شد:

<ul>
  <li>Go for a run</li>
  <li>Cook dinner at home</li>
  <li>Call Dentist</li>
</ul​>

ممکن است متوجه شده باشید که کد قبلی باعث تغییر صفحه نشده است. دو کامپوننت Todo و TodoList رویه‌هایی (Function) هستند که با توجه به ورودی‌شان یک قطعه‌ی اچ‌تی‌ام‌ال باز می‌گردانند. اساس ری اکت همین مفهوم است. توسعه‌دهندگان اپلیکیشن‌های ری اکت بخش‌هایی از واسط کاربری را ایجاد می‌کنند، مانند کاری که در مثال قبلی انجام دادیم، و اچ‌تی‌ام‌ال نهایی را به یک رویه‌ی render ارائه می‌دهند. با تغییر داده‌ها در هنگام اجرای اپ، برای مثال کاربری که یک مورد جدید به فهرست کاری خود اضافه می‌کند، نیازی به نوشتن کد جدید برای آپدیت واسط کاربری وجود ندارد. در عوض همانطور که داده‌ها در زمان بارگذاری صفحه به کامپوننت‌ها داده شده بودند، این داده‌ی جدید نیز به کامپوننت داده می‌شود و اپلیکیشن واسط کاربری را دوباره از صفر می‌سازد. سپس این اچ‌تی‌ام‌ال نهایی به رویه‌ی render ارسال می‌شود تا ظاهر اپ به روز رسانی شود. ممکن است به نظر برسد که رندر دوباره‌ی کل صفحه پس از هر تغییر باعث افت کارایی می‌شود، اما تردستی ری اکت در همین قسمت نهفته شده است.

هنگام فراخوانی رویه‌ی render، ری اکت به جای اینکه سریعاً واسط کاربری را بازسازی کند، خروجی این داده‌های جدید را با یک کپی از خروجی پیشین مقایسه می‌کند. سپس تفاوت‌ها را پیدا کرده و کوچک‌ترین و بهینه‌ترین تغییرات ممکن را در صفحه اعمال می‌کند.

این فرآیند مقایسه‌ی وضعیت جدید با وضعیت قبلی و به روز رسانی بهینه به طرزی شفاف اتفاق می‌افتد. چنین چیزی به توسعه‌دهندگان اجازه می‌دهد که با تغییر داده‌ها، خروجی جدیدی برای رندر ارائه دهند و نگران اتفاقات پس زمینه نباشند. این سبک با نام برنامه‌نویسی اعلانی شناخته می‌شود و با سبک دستوری بیشتر ابزارهای موجود متفاوت است، در برنامه‌نویسی دستوری توسعه‌دهندگان باید نحوه‌ی رفتار و همچنین گام‌های مورد نیاز برای رخ دادن آن را توصیف کنند.

ری اکت یک کتابخانه است، نه یک فریم‌ورک

یکی از تفاوت‌های اصلی کتابخانه‌هایی مانند ری اکت با فریم‌ورک‌هایی مانند Ember.js و AngularJS این است که ری اکت فقط متوجه رندر کردن واسط کاربری است و بسیاری از قسمت‌های دیگر کار بر عهده‌ی خود پروژه است. از جولای 2018 مجموعه‌ی استانداردی از ابزارهای ری اکت که با نام استک شناخته می‌شوند به شرح زیر معرفی شده‌اند:

Application code
React, Redux, react-router

Build tools
Webpack, Uglify, npm/yarn, Babel, babel-preset-env

Testing tools
ESLint, Enzyme, Mocha/Jest

اگر بخواهیم مقایسه کنیم، استک Ember.js خود Ember.js است. ممکن است چنین چیزی به عنوان ضعف ری اکت محسوب شود (و بسته به شرایط می‌تواند باشد) اما بحثی که پیرامون برتری فریم‌ورک‌ها در مقابل کتابخانه‌ها مطرح می‌شود بحثی قدیمی است که هر دو طرف آن نکات جالبی برای بیان کردن دارند. انتخاب ری اکت برای اینکه یک کتابخانه باشد به پروژه‌ها اجازه داده است تا به طور پله‌ای از آن استفاده کنند و فضا را باز گذاشته است تا اجتماع پیرامون این کتابخانه نوآوری‌های خود را در دیگر بخش‌های این استک با سرعت بیشتری به انجام برسانند. از طرف دیگر باعث شده است بسیاری از پروژه‌ها درگیر اکوسیستم پیچیده‌ای از ابزارهای اضافی شوند. هیچ کدام از این موارد باعث بهتر یا بدتر بودن ری اکت نمی‌شوند، فقط هنگام مقایسه‌ی کتابخانه‌ای مانند ری اکت با فریم‌ورک‌های پر از امکانات باید تفاوت بنیادین این دو گروه را بدانیم.

مقایسه‌ی ری اکت با کتابخانه‌ها و فریم‌ورک‌های دیگر

در تابستان 2011 تعدادی از توسعه‌دهندگان برجسته‌ی وب، یک وبسایت و مخزن گیت با نام ToDoMVC ایجاد کردند که در آن با استفاده از کتابخانه‌ها و فریم‌ورک‌های محبوب، یک اپلیکیشن فهرست کار یکسان پیاده‌سازی شده بود. در اواسط سال 2012 پروژه‌ی ToDoMVC به مکانی غیررسمی برای مقایسه‌ی ابزارهای مختلف تبدیل شد.

حالا، با گذشت شش سال از زمان اجرای ToDoMVC، این پلتفرم وب ظرفیت‌های بسیار بیشتری دارد و اپلیکیشن‌های پیشروی هکر نیوز (HNPWA) جانشین ToDoMVC را راه‌اندازی کرده است. تمرکز HNPWA روی رفتارهای اپ است که شامل طراحی واکنش‌گرا، کارایی در موبایل و ظرفیت‌های آفلاین می‌شود. برای اینکه ببینید نوشتن وبسایت‌ها و وب اپ‌ها در یک کتابخانه یا فریم‌ورک مدرن چگونه است به TodoMVC یا HNPWA نگاهی بیندازید.

اخبار تکنولوژی
بلیط اتوبوس
تاکسی بین شهری
برچسب ها: HTML, React, جاوااسکریپت, ری اکت
این مقاله را به اشتراک بگذارید
توییتر Whatsapp Whatsapp تلگرام ایمیل کپی کرده لینک پرینت
چه حسی به این مطلب داری؟
Sad0
Sleepy0
Love0
Happy0
Angry0
Cry0
Surprise0
مقاله قبلی تیپ ماه تولد شما چیست؟ در سال جدید بهتر است چه لباس‌های بپوشید؟ تیپ ماه تولد شما چیست؟ در سال جدید بهتر است چه لباس‌های بپوشید؟
مقاله بعدی گوشی رجیستر نشده نخرید؛ سایت ثبت گوشی مسافری روی گوشی قاچاق بسته شد گوشی رجیستر نشده نخرید؛ سایت ثبت گوشی مسافری روی گوشی قاچاق بسته شد
نظر بدهید نظر بدهید

نظر بدهید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لطفا یک امتیاز انتخاب کنید!

تبلیغات

موبوگیفت
  • خرید فالوور ایرانی
  • خرید فالوور ارزان
  • پنجره دوجداره
  • خرید ممبر تلگرام
  • تاثیر سیاست های ترامپ بر کریپتو
  • ارز دیجیتال ایاس ( EOS)
  • قدرت دادن چین لینک به Web3
  • راز نوسانات بیت کوین
  • دوج کوین یا شیبا
  • دستگاه جوجه کشی دماوند
  • خرید بیت کوین
  • دوربین کوچک سیم کارت خور
  • خرید اکانت اسپاتیفای
  • لوستر مدرن
  • خرید سرور hp ماهان شبکه اچ پی

آخرین خبرها

سیستم عامل هارمونی او اس برای کامپیوتر

سیستم عامل هارمونی او اس برای کامپیوتر؛ گام بلند هواوی به سوی استقلال و نوآوری

مقایسه ویوو X200 اولترا و گوگل پیکسل 9 پرو ایکس ال

مقایسه ویوو X200 اولترا و گوگل پیکسل 9 پرو ایکس ال؛ قدرت بهتر است یا هوش؟!

آپدیت جدید گلکسی واچ

آپدیت جدید گلکسی واچ ویژگی Now Bar را به ساعت‌های سامسونگ می‌آورد

مطالب مرتبط

بهینه‌سازی سخت‌افزار رایانه
آموزش‌های تخصصی

5 باور نادرست درباره بهینه‌سازی سخت‌افزار رایانه که نباید آن‌ها را قبول کنید

23 اسفند 1403 ساعت 19:16
تست استرس کامپیوتر
آموزش‌های تخصصیمنتخب

چرا و چگونه تست استرس کامپیوتر انجام دهیم؟ معرفی بهترین برنامه‌های بنچمارک

6 خرداد 1403 ساعت 23:59
مشکلات پرینتر سه بعدی
آموزش‌های تخصصی

مشکلات پرینتر سه بعدی و راه حل‌های عملی آن

4 فروردین 1403 ساعت 15:44
میان افزار
آموزش‌های تخصصی

میان افزار چیست و چه کاربردی در برنامه نویسی دارد؟

30 دی 1402 ساعت 13:52

درباره دیجی‌رو

رسانه دیجی‌رو با شعار دنیای تکنولوژی در اوایل سال 94 تاسیس شد. ماموریت ما اطلاع رسانی صحیح و ارائه آخرین اخبار تکنولوژی، بررسی محصولات دیجیتال، راهنمای خرید کالاهای دیجیتال و همچنین تهیه به‌روزترین مطالب آموزشی و مقالات در حوزه تکنولوژی، علم و سبک زندگی است. گروه دیجی‌رو همه‌ی تلاش خود را به کار خواهد گرفت که روزبه‌روز بر کیفیت و خدمات این رسانه بیفزاید تا دیجی رو به عنوان رسانه‌ای معتبر بدرخشد.

logo-samandehi
دنبال کردن
تمامی حقوق برای رسانه دیجی‌رو محفوظ است. 1403 ©
خوش آمدید

ورود به حساب کاربری

فراموش رمز عبور