کامپوننت‌های کلاس در ری‌اکت

react class components
03 دی 1403

آشنایی با کلاس‌ها در ری‌اکت


سلام دوستان! امروز می‌خواهیم درباره کلاس‌ها در ری‌اکت صحبت کنیم. کلاس‌ها یکی از اصلی‌ترین مفهوم‌ها در ری‌اکت هستند که به ما اجازه می‌دهند تا کامپوننت‌های خودمان را ایجاد کنیم. شاید برایتان جالب باشد که بدانید کلاس‌ها به ما این امکان را می‌دهند تا وضعیت (state) را در کامپوننت‌ها مدیریت کنیم و از قابلیت‌های متنوعی مانند متدهای lifecycle بهره‌مند شویم.



خب، اولین چیزی که باید بدانید این است که کلاس‌ها در ری‌اکت باید از React.Component ارث‌بری کنند. این کار به کامپوننت شما امکانات اضافی می‌دهد که برای ساختار و کارکرد بهتر آن نیاز داریم. با استفاده از کلاس، می‌توانید state را تعریف کنید و همچنین متدهایی برای مدیریت این state بنویسید.



برای ایجاد یک کلاس کامپوننت در ری‌اکت، ابتدا باید React و Component را از بسته‌ی react وارد کنید. سپس یک کلاس جدید با استفاده از کلمه‌ی کلیدی class ایجاد می‌کنید و render() را تعریف می‌کنید که باید JSX را برگرداند. این متد جایی است که شما UI کامپوننت خود را مشخص می‌کنید.



حالا بیایید یک مثال ساده از یک کلاس کامپوننت را بررسی کنیم. در این مثال، ما یک کامپوننت ساده ایجاد می‌کنیم که یک دکمه را نشان می‌دهد و با هر بار کلیک روی آن، یک شمارش افزایش می‌یابد. بی‌صبرانه منتظرم تا شما نیز از این مثال الهام بگیرید!



import React from 'react';

class Counter extends React.Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}

increment = () => {
this.setState({ count: this.state.count + 1 });
};

render() {
return (




);
}
}

export default Counter;


توضیح کد




import React from 'react';

این خط برای وارد کردن کتابخانه ری‌اکت است که برای ساخت کامپوننت‌ها نیاز داریم.



class Counter extends React.Component {

در اینجا یک کلاس به نام Counter ایجاد می‌کنیم که از React.Component ارث‌بری می‌کند.



constructor(props) {

این متد سازنده است که در آن می‌توانیم state اولیه را تنظیم کنیم.



this.state = { count: 0 };

در اینجا یک state به نام count تعریف می‌کنیم که در ابتدا برابر با 0 است.



increment = () => {

این متد برای افزایش مقدار count استفاده می‌شود و با هر بار کلیک بر روی دکمه فراخوانی می‌شود.



this.setState({ count: this.state.count + 1 });

با این خط، مقدار count یک واحد افزایش می‌یابد.



render() {

در این متد، UI کامپوننت را بازمی‌گردانیم.



return (

در اینجا JSX کامپوننت را برمی‌گردانیم، که شامل نمایش count و یک دکمه است.



export default Counter;

در نهایت، کامپوننت Counter را به عنوان پیش‌فرض صادرات می‌کنیم تا بتوانیم آن را در سایر فایل‌ها استفاده کنیم.

سوالات متداول

؟

چطور می‌توانم یک کامپوننت کلاس در ری‌اکت بسازم؟

؟

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

؟

چطور می‌توانم از state در کامپوننت کلاس استفاده کنم؟

؟

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