آموزش ReactJS – فصل دوازدهم: کلیدها (Keys)

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

ReactJS - فصل دوازدهم: کلیدها Keys

همان طور که گفتیم، کلید ها در زمانی که می خواهیم با کامپوننت های داینامیک کار کنیم کاربرد دارند.

تعریف کردن کلید برای کامپوننت هایی که از روی آرایه ساخته اند، بسیار مهم است. در صورتی که از کلید یکتا استفاده نکنید، در صورت حذف و آپدیت کامپوننت ها، اتفاقاتی عجیبی در صفحات رخ خواهد داد.

در هنگامی که احتیاج داشته باشیم چندین کپی از یک کامپوننت با دیتاهای مختلف داشته باشیم، می توانیم کامپوننت ها را به صورت داینامیک ایجاد کنیم.

ایجاد داینامیک کامپوننت ها را می توانید در مثال زیر مشاهده کنید.

این کد های فایل App.jsx خواهد بود:

import React from 'react';

class App extends React.Component {
   constructor() {
      super();
		
      this.state = {
         data:[
            {
               component: 'First...',
               id: 1
            },
            {
               component: 'Second...',
               id: 2
            },
            {
               component: 'Third...',
               id: 3
            }
         ]
      }
   }
   render() {
      return (
         <div>
            <div>
               {this.state.data.map((dynamicComponent, i) => <Content 
                  key = {i} componentData = {dynamicComponent}/>)}
            </div>
         </div>
      );
   }
}
class Content extends React.Component {
   render() {
      return (
         <div>
            <div>{this.props.componentData.component}</div>
            <div>{this.props.componentData.id}</div>
         </div>
      );
   }
}
export default App;

فصل 12 – مثال 1 (فایل App.jsx)

این کد های فایل index.js خواهد بود:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';

ReactDOM.render(<App/>, document.getElementById('root'));

فصل 12 – مثال 1 (فایل index.js)

در مثال بالا ما با متود map با استفاده از اطلاعات درون یک آرایه، تعدادی کامپوننت ایجاد کرده ایم. برای کمک به ReactJS در درک و پی گیری راحت تر کامپوننت ها، از key = {i} استفاده شده است.

از آنجایی که i همیشه یکتا خواهد بود برای استفاده به عنوان کلید بسیار مناسب است.

ما باید نام کلید ها را همیشه به صورت کاملا یکتا انتخاب کنید. البته نام کلید ها فقط باید در آن آرایه یکتا باشند.

مثال بالا چنین چاپ خواهد شد:

اجرا مثال کلید های reactjs

زمانی که یکی از این کامپوننت ها از صفحه حذف شود یا به دست کاربر بروزرسانی شود، ری اکت متوجه خواهد شد.

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

ویدیوها و مطالب مشابه