ری اکت در سال گذشته با پیشرفتهای زیادی مواجه بوده است و چندین ویژگی جدید ری اکت معرفی شده است. ما هم قصد داریم در این پست به 5 ویژگی که از بهترین ویژگی های React در سال 2021 بوده صحبت کنیم و آنرا بریتان معرفی کنیم. فقط قبل از آن این تکنولوژی را برا آنهای که اطلاعی ندارند، توضیح خواهیم داد.
اول از همه ببینیم React چیست؟
در واقع React یا React JS یکی از کتابخانههای جاوا اسکریپت است که از سرعت و کیفیت بالایی برخوردار بوده این کتابخانه را فیسبوک و اینستاگرام نگهداری میکنند. این کتابخانه اوپن سورس بوده و کاملا رایگان در دسترس است. این کتابخانه به شما اجازه میدهد کامپوننتهایی را با قابلیت استفاده مجدد طراحی و ایجاد کنید. حال میرویم سراغ بهترین ویژگی های React…
React همزمان با عرضه نسخه 16.8، مفهوم هوک را معرفی کرد. React Hook ها به ما امکان میدهند تا از روشهای state، Life cycle و سایر ویژگیهای React در یک مولفه کاربردی استفاده کنیم. پیش از این، استفاده از این ویژگیها فقط از طریق مولفههای کلاس، امکان پذیر بود. Hookها به شما امکان میدهند بدون نگرانی در مورد سلسله مراتب مولفهها، از منطق stateful استفاده مجدد بکنید. به نظر من این یک پیروزی بزرگ برای React است زیرا اکنون با hook های موجود، مدیریت دادهها بسیار آسان میشود.
شما مجبور نیستید که همه اجزای کلاس خود را به اجزای عملکردی تبدیل کنید. React چنین چیزی را توصیه نمیکند. در عوض میتوانید از اجزای عملکردی و hookهای اهرمی برای مدیریت state استفاده کنید. در زیر مثالی از یک مولفه کلاس آورده شده که نشان میدهد وقتی مولفه کلاس با مولفه کاربردی جایگزین میشود چه اتفاقی میافتد.
مولفه کلاس
import React from "react"
class YesNoComponent extends React.Component { state = { buttonPressed: “” };
onYesPress() { this.setState({ buttonPressed: “Yes” }); console.log(“Yes was pressed”); }
onNoPress() { this.setState({ buttonPressed: “No” }); console.log(“No was pressed”); }
render() { return (
this.onYesPress()}>Yes this.onNoPress()}>No
); } }
export default YesNoComponent;
مولفه کاربردی با hookها
import React, { useState } from “react”;
const YesNoComponentFunctional = () => { const [button, setButton] = useState(“”);
const onYesPress = () => { setButton(“Yes”); console.log({ button }); };
const onNoPress = () => { setButton(“No”); console.log({ button }); };
return (
onYesPress()}>Yes onNoPress()}>No
); };
میبینید که با استفاده از مولفه کاربردی، کدهای کمتری نوشته شده و همچنین کد ما بهینه سازی شده است.
از دیگر ویژگی های React در سال 2021 تابع Higher Order برای DRY است. یکی از راههایی که به شما قابلیت استفاده مجدد یا Don’t Repeat Yourself (DRY) را میدهد، استفاده از مفهوم higher-order function (HOC) است. یعنی شما میتوانید بدون تکرار کد و با استفاده از HOC، عملکردهای مشترک را به اشتراک بگذارید.
در اینجا میبینید که HOCها در React چگونه به نظر میرسند. HOC اساساً تابعی است که یک مولفه را به عنوان آرگومان میگیرد و یک مولفه جدید را بر میگرداند. همچنین میتواند مولفه اصلی را که به عنوان آرگومان به آن داده شده است ارائه دهد.
function myHOC (myOtherComponent) { return class extends React.Component { render() { return } } }
HOCها به شما اجازه می دهند که کد خود را انتزاعی کنید. هنگامی که شما از قابلیت HOC ها آگاه شدید پس از آن، ممکن است خیلی از اوقات از این الگو استفاده کنید. گرچه استفاده از این توابع اختیاری است، اما به شما امکان میدهند که تا حد خیلی زیادی قابلیت استفاده مجدد در کد خود داشته باشید. البته شما همیشه میتوانید اصول DRY را حتی بدون اجرای HOCها به کار بگیرید.
شما میتوانید مولفهها را بدون PropTypes تعریف کنید. اما بدون PropTypes یا نوع دیگری از اعتبارسنجی، ممکن است دادههای اشتباه به یک مولفه وارد شود. این امر میتواند باعث خرابی یا رفتار غیر منتظره در برنامه شما شود. من به شدت توصیه میکنم از PropTypes در اجزای React خود استفاده کنید تا از اشتباهات غیر منتظره کاربر جلوگیری شود.
import PropTypes from 'prop-types'
const MyComponent = (props) => { return ( // render something ) }
// You can declare that a prop is a specific JS type. MyComponent.propTypes = { text: PropTypes.string.isRequired, content: PropTypes.array.isRequired, onPress: PropTypes.func.isRequired, size: PropTypes.number.isRequired, styles: PropTypes.object.isRequired, isReady: PropTypes.bool.isRequired, }
انواع مختلفی از اعتبارسنجها در مثال بالا وجود دارند (رشته، آرایه، تابع، عدد، boolو غیره ..). این اعتبارسنجها به شما امکان میدهند اعلام کنید که یک prop از نوع Javascript خاص است. هر کسی که از این مولفه استفاده میکند اکنون دیگر همه propها و typeهای نظیر مورد نیاز آنها را میشناسد. وقتی type داده نادرستی به مولفه منتقل شود، React خطایی روی کنسول نشان میدهد. این به ما امکان میدهد که در طول زمان کدنویسی، خطاها را پیدا کنیم و این خود یکی از بهترین ویژگی های React است.
آیا تاکنون با مولفههایی با هزار خط کد مواجه شدهاید؟ پس حتما میدانید که بهتر است تلاش کنید به جای یک مولفه با هزار خط کد، چندین مولفه ساده و کوچک داشته باشید. بهتر است مولفه شما کارهای زیادی انجام ندهد. یک مولفه در React، واحدی است که برای انجام یک کار در نظر گرفته شده و انتظار میرود که ساده باشد. پس اگر به نظرتان یک مولفه طولانی و پیچیده است، باید آن را به چندین مولفه یا container تقسیم کنید. اجزای نمایشی و اجزای container را از هم جدا کنید.
من معمولا ترجیم میدهم که یک پوشه/container و یک پوشه/مولفهی دیگر داشته باشم. مولفهها آنهایی هستند که کاملاً UI (ارائه ای) هستند وcontainerها آنهایی هستند که در انها به سختی کدی مربوط به UI پیدا میشود و بیشتر حاوی منطقی پیچیده هستند.
با جدا نگه داشتن این دو از هم، مولفهها معمولاً کوچک و ساده میشوند. این امر همچنین تست کردن مولفهها و containerهای منطقی را نیز آسانتر میکند.
کد خود را تست کنید. وقتی تمام موارد بالا را در React پیادهسازی کنید، تست کردن کد آسانتر میشود. انواع مختلفی از روشهای آزمایش که میتوانید کدهای React را با آنها تست کنید، وجود دارد و من همه آنها را توصیه میکنم:
Jest محبوبترین چارچوب برای Unit Testing است. چارچوبهای دیگری مانند Mocha نیز وجود دارد که میتوانید از آنها استفاده کنید. Unit Testing ابتداییترین شکل تست است که به شما امکان میدهد کوچکترین unitها را در کد خود تست کنید.
همه چیز در React یک مولفه است و از رویکردهای مولفه پیروی میکند. مولفههای شما واحدهای قابل استفاده مجدد شخصی هستند که میتوانند به طور کارآمد تست شوند. این روش آزمایش در React بسیار مهم است.
Kent C.Dodd’s که کتابخانه تست React است یک راه حل سبک برای تست مولفههای React است. این نرم افزار ساده، تست React DOM که بهترین روش برای تمرین تست کردن کد است را ارائه میدهد. بسیاری از تیمها موفقیت خوبی در تست مولفههای خود با این کتابخانه داشتهاند. اگر تاکنون از این کتابخانهها استفاده نکردهاید، حتما آنها را بررسی کنید.
این نوع تست اساساً کلیت برنامه را تست میکند. این روش، اتفاقی که پس از کلیک کردن کاربر در مرورگر رخ میدهد را شبیهسازی میکند. محبوبترین و آسانترین چارچوبی که برای تست End to End در جاوا اسکریپت (یا هر زبان برنامه نویسی تحت وب دیگر) استفاده میشود، Cypress است. من از Cypress برای آزمایش برنامههای frontend استفاده میکنم. این چارچوب به راه اندازی کلی برنامه کمک میکند. این روش تست باید در یک محیط واقعی در مرورگر انجام شود و من به شدت توصیه میکنم که حتما این تستها را در برنامه React خود انجام دهید.
این مواردی که در بالا گفته شد همگی ویژگی های React در سال 2021 را شامل میشد. شما نیز با این ویژگیها میتوانید عملیات خود را بروز کرده و بهتر فعالیت کنید.
آیا میخواهید یک برنامه نویس حرفه ای بشوید؟ پس در دوره های برنامه نویسی آنلاین من شرکت کنید. اگر این مقاله را دوست داشتید آن را با دوستانتان به اشتراک بگذارید.