آموزش ReactJS – فصل نهم: فرم ها

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

ReactJS - فصل نهم: فرم

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

یک مثال ساده از ایجاد فرم و کار کردن با اطلاعات ورودی کاربر در ReactJS

در یک مثال عملی قصد داریم یک فرم ایجاد کرده و همزمان با تایپ کردن کاربر در این فرم، اطلاعات تایپ شده را درون یک المان نمایش دهیم.

کدهای زیر را در فایل 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(e) {
      this.setState({data: e.target.value});
   }
   render() {
      return (
         <div>
            <input type = "text" value = {this.state.data} 
               onChange = {this.updateState} />
            <h4>{this.state.data}</h4>
         </div>
      );
   }
}
export default App;

کدهای زیر را در فایل index.js قرار دهید:

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

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

برای ایجاد این فرم، ما زمینه ورودی با value = {this.state.data} ساخته ایم. این به ما اجازه می دهد که اطلاعات استیت را بروزرسانی کنیم.

در ادامه از رخداد onChange برای تشخیص تایپ کاربر استفاده کرده ایم. هر زمان که کاربر تایپ کند این رخداد اجرا خواهد شد. مقدار this.updateState برای این رخداد مشخص می کند که هر زمان کاربر تایپ کرد فانکشن updateState اجرا شود.

فانکشن updateState پارامتری به نام e دریافت می کند که در واقع همان element است. این پارامتر به input که کاربر در آن در حال تایپ است اشاره می کند.

در فانکشن updateState دستورات لازم برای آپدیت استیت نوشته شده است. e.target.value حاوی اطلاعات تایپ شده توسط کاربر است.

پس از اجرای مثال بالا یک زمینه برای تایپ کردن نمایش داده خواهد شد که با تایپ کردن در آن، اطلاعات المان زیر آن را تغییر می دهید. مانند تصویر زیر:

اجرای مثالی از فرم با ری اکت

یک مثال پیچیده تر از کار کردن با فرم در ReactJS

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

کد های زیر را درون 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(e) {
      this.setState({data: e.target.value});
   }
   render() {
      return (
         <div>
            <Content myDataProp = {this.state.data} 
               updateStateProp = {this.updateState}></Content>
         </div>
      );
   }
}
class Content extends React.Component {
   render() {
      return (
         <div>
            <input type = "text" value = {this.props.myDataProp} 
               onChange = {this.props.updateStateProp} />
            <h3>{this.props.myDataProp}</h3>
         </div>
      );
   }
}
export default App;

فایل index.js شبیه مثال قبلی خواهد بود.

با اجرای مثال بالا همان چیزی را مشاهده می کنید که در مثال قبلی دیدید. فقط کمی تغییرات در نحوه نگارش وجود داشت که کد ها را به نوعی حرفه ای تر می کند!

مثال بالا نشان می دهد شما چگونه می توانید از کامپوننت های درونی برای نمایش و آپدیت یک فرم استفاده کنید.

تنها تغییری که در مثال بالا مشاهده می کنید این است که کامپوننتی به نام Content ایجاد شده است و حاوی همان فرم مثال قبلی و المان چاپ کننده اطلاعات است. اطلاعات فانکشن تغییر دهنده استیت از طریق Prop به این کامپوننت ارسال می شود و این کامپوننت قادر است فانکشن تغییر دهنده که اینجا updateState است را با هر تغییر در input کاربر صدا بزند.

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