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

فصل دهم آموزش ری اکت نتران به نحوه استفاده از رویداد ها یا همان event ها در این ابزار اختصاص دارد. رویدادها زمانی رخ می دهند که کاربر از طریقی با صفحه ارتباط برقرار می کند (مانند کلیک کردن بر روی دکمه). با ما در فصل دهم آموزش های گام به گام ری اکت جی اس همراه باشید تا بیاموزید که چگونه می توان یک رویداد را از روش های مختلف تشخیص داده و مطابق آن عملیاتی را اجرا کرد.

ReactJS - فصل دهم: رویداد Events

یک مثال ساده از تشخیص یک رویداد در ReactJS

در این مثال ساده قصد داریم صفحه ای ایجاد کنیم که حاوی یک دکمه و کمی متن باشد. با کلیک بر روی دکمه قرار است متن تغییر کنید.

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

در مثال زیر فانکشن updateState در زمان کلیک بر روی دکمه اجرا خواهد شد و متن درون المان h4 به طبع تغییر استیت، تغییر متن می دهد.

کد های زیر محتوای فایل App.jsx است:

import React from 'react';

class App extends React.Component {
   constructor(props) {
      super(props);
      
      this.state = {
         data: 'Initial data...'
      }
      this.updateState = this.updateState.bind(this);
   };
   updateState() {
      this.setState({data: 'Data updated...'})
   }
   render() {
      return (
         <div>
            <button onClick = {this.updateState}>CLICK</button>
            <h4>{this.state.data}</h4>
         </div>
      );
   }
}
export default App;

فصل 10 – مثال 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'));

فصل 10 – مثال 1 : فایل index.js

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

مثال اجرای مثال event

یک مثال پیچیده تر، تشخیص یک رویداد از یک کامپوننت داخلی

اگر زمانی نیاز داشتیم که استیت یک کامپوننت والد را در فرزند آن تغییر دهیم می توانیم در کامپوننت والد یک فانکشن تغییر دهنده استیت ساخته و آن را به عنوان پراپ به کامپوننت فرزند انتقال دهیم.

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

در مثال زیر ما فانکشنی به نام updateStateProp ساخته ایم و به عنوان پراپ آن را در اختیار کامپوننت Content قرار داده ایم. کامپوننت Content در هنگامی که با رویداد onClick بر روی دکمه مواجه می شود این متود updateStateProp که از پراپ آمده است را به صورت this.props.updateStateProp صدا می زند.

کد های زیر را درون فایل App.jsx قرار دهید:

import React from 'react';

class App extends React.Component {
   constructor(props) {
      super(props);
      
      this.state = {
         data: 'Initial data...'
      }
      this.updateState = this.updateState.bind(this);
   };
   updateState() {
      this.setState({data: 'Data updated from the child component...'})
   }
   render() {
      return (
         <div>
            <Content myDataProp = {this.state.data} 
               updateStateProp = {this.updateState}></Content>
         </div>
      );
   }
}
class Content extends React.Component {
   render() {
      return (
         <div>
            <button onClick = {this.props.updateStateProp}>CLICK</button>
            <h3>{this.props.myDataProp}</h3>
         </div>
      );
   }
}
export default App;

فصل 10 – مثال 2 : فایل App.jsx

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

مثال اجرای رخداد از یک کامپپوننت درونی

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