ریکت یک کتابخانه پر طرفدار جاوا اسکریپتی هست به همین دلیل پکیج ها زیادی برایش وجود دارد ، اگر سری به سایت npm بزنید و react را سرچ کنید متوجه این موضوع می شود ، بعضی از این کتابخانه ها کاربرد عمومی دارد و می تواند نیاز توسعه دهنده ها را در اکثر پروژه ها برطرف کند و بعضی دیگر کاربرد های خاصی دارند و مشکل پروژه ها با قابلیت های خاص را برطرف می می کنند.
حالا در بین این همه پکیج کدام می تواند به ما کمک کند؟
در این پست قصد دارم چند پکیج پر کاربرد که برای هر توسعه دهنده ریکت نیاز است را معرفی کنم.
اگر با فرم ها در ریکت کار کرده باشید متوجه می شوید که هندل کردن input ها کار ساده نیست و باعث کثیف شدن و پیچیده شدن کد شما می شود ، به احتمال زیاد شما اولین نفری نیستید که به این مشکل برخورده اید ، برای این مشکل ماژول های زیادی نوشته شده و یکی از این ماژول ها formik هست.
شما می توانید برای آشنای با فرمیک از لینک و برای دیدن یک مثال ساده از فرمیک از لینک استفاده کنید.
npm install formik --save yarn add formik
برای پیشبرد سریع تر صفحات وب سایت خود استفاده از یک ماژول که قبلا قوانین ui/ux در آن رعایت شده باشد خیلی کمک کننده هست یک از کاملترین ماژول ها متریال یو آی هست.
برای آشنایی بیشتر با این ماژول می توانید از لینک استفاده کنید
npm install @material-ui/core yarn add @material-ui/core
import React from "react"
import ReactDOM from "react-dom"
import Button from "@material-ui/core/Button"
function App() {
return (
<Button variant="contained" color="secondary">
REGISTER NOW
</Button>
);
}
ReactDOM.render(<App />, document.querySelector("#saeidfiy"));
ریکت به صورت Single Page App کار می کند یعنی تک صفحه ای شروع به کار می کند ولی احتمالا خیلی از افراد به صفحات بیشتری نیاز دارند و می خواهند به راحتی بین صفحات جا به جا شوند ، ماژول ریکت روتر برای این کار ساخته شده است.
برای مشاهده اطلاعات بیشتر می توانید از لینک استفاده کنید
npm install --save react-router yarn add react-router
import React from "react"
import { render } from "react-dom"
import { BrowserRouter as Router, Route, Link } from "react-router-dom"
import About from "./components/About"
import Home from "./components/Home"
import Topics from "./components/Topics"
const BasicExample = () =>
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/topics">Topics</Link>
</li>
</ul>
<hr />
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/topics" component={Topics} />
</div>
</Router>;
render(<BasicExample />, document.getElementById("Saeidfiy"));
یکی از مشکلاتی که در ریکت وجود داد انتقال و اشتراک دیتا بین کامپونت های مختلف است که ساده بودن کار بسیار مهم است ، قبل از ریکویل جی اس ماژولی به نام ریداکس مورد استفاده قرار می گرفت که کار با آن راحت نبود.
برای آشنایی بیشتر با این کتابخانه می توانید از لینک استفاده کنید
npm install recoil yarn add recoil
import React from 'react';
import {
RecoilRoot,
atom,
selector,
useRecoilState,
useRecoilValue,
} from 'recoil'; const textState = atom({
key: 'textState', // unique ID (with respect to other atoms/selectors)
default: '', // default value (aka initial value)
}); function TextInput() {
const [text, setText] = useRecoilState(textState);
const = (event) => {
setText(event.target.value);
};
return (
<div>
<input type="text" value={text} ={} />
<br />
Echo: {text}
</div>
);
} function App() {
return (
<RecoilRoot>
<TextInput />
</RecoilRoot>
);
} render(<App/>, document.getElementById("Saeidfiy"));
مشکل دیگری که ممکن است در ریکت به آن برخورد کرده باشید ، مشکل استایل دادن به کامپونت ها هست ، بعضی مواقع اسم کلاس ها با یکدیگر مشابه می شود یا فایل css متعدد به وجود می آید ، برای رفع این مشکلات می توانید از ماژول استایل کمپونت استفاده کنید و استایل را فقط روی یک کامپونت پیاده کنید.
برای بدست آوردن اطلاعات بیشتر می توانید از لینک استفاده کنید.
npm i styled-components yarn add styled-components
import { render } from "react-dom"
import { Button, th } from "smooth-ui"
import { darken } from "polished"
// Simple extend
const BlueButton = Button.extend`
background-color: blue !important;
color: white !important;
`;
// Use props & theme in extend
const BorderedButton = Button.extend`
border: 1px solid ${props => th(props.variant, color => darken(0.1, color))};
&:hover {
border-color: ${props => th(props.variant, color => darken(0.3, color))};
}
`;
// Modify component
const LinkBorderedButton = BorderedButton.withComponent("a");
const App = () => (
<div>
<BlueButton variant="primary">Yes blue</BlueButton>
<BorderedButton variant="primary">Smooth Button</BorderedButton>
<LinkBorderedButton variant="success">This is a link</LinkBorderedButton>
</div>
);
render(<App />, document.getElementById("saeidfiy"));
به دلیل پر طرفدار بودن ریکت ماژول های زیادی برای رفع مشکلات و بهبود این کتابخانه نوشته شده ، من در اینجا ۵ عدد از این کتابخانه ها که کاربرد ریادی دارند را معرفی کردم ، شما می توانید با سرچ بیشتر کتابخانه های دیگر و مطابق نیاز خود را پیدا کنید.
اگر در مسیر توسعه نرم افزار خود به مشکل و باگی برخورد کردید می توانید از لینک برای دیباگ کردن استفاده کنید.
اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، میتوانید از طریق راههای ارتباطی زیر با من در تماس باشید:
میتوانید من را در این پلتفرمها دنبال کنید و پیامها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرمها همکاری خواهم کرد و پاسخهای لازم را ارائه خواهم داد.