🚀 روز نهم: ماشین حساب تاریخ پویا 🚀

ساخت یک ماشین حساب تاریخ پویا 🗓️
امروز، من یک پروژه هیجان انگیز را آغاز کردم تا درک خود را از مدیریت حالت، تعامل اجزا و رندر شرطی در React عمیق تر کنم. هدف پروژه ایجاد یک ماشین حساب تاریخ پویا بود که تاریخ ها را بر اساس ورودی کاربر تنظیم می کند. در اینجا نکات کلیدی و برجسته تجربه یادگیری من آمده است:
یادگیری های کلیدی:
1️⃣ مدیریت دولتی: یاد گرفتید چگونه چندین حالت را برای مرحله، شمارش و تاریخ با استفاده از React مدیریت کنید useState
قلاب.
2️⃣ تعامل مؤلفه ها: کاوش وضعیت عبور و عملکرد به عنوان لوازم جانبی برای اجزای کودک برای تعامل موثر.
3️⃣ رندر مشروط: پیامهای پویا پیادهسازی شده که تعداد روزهای قبل یا از امروز را منعکس میکنند.
تمرین عملی:
• محاسبه تاریخ دینامیک: عملکردی برای افزودن روز به تاریخ فعلی و به روز رسانی نمایشگر بر اساس ورودی کاربر ایجاد کرد.
• رابط کاربری تعاملی: یک رابط بصری با دکمه هایی برای افزایش/کاهش تعداد و مقادیر گام ساخته شده است.
• پیام های مشروط: نمایش پیام های متنی که بر اساس تعداد تغییر می کنند، تاریخ های آینده یا گذشته را نشان می دهند.
تفکیک پروژه:
جزء برنامه
را App
جزء به عنوان ریشه عمل می کند و می پیچد Counter
جزء.
import "./App.css";
import { useState } from "react";
function App() {
return (
div className="container">
Counter />
/div>
);
}
کامپوننت شمارنده
منطق اصلی را برای شمارش روزها و به روز رسانی تاریخ مدیریت می کند.
function Counter() {
const [step, setStep] = useState(1);
const [count, setCount] = useState(0);
const [date, setDate] = useState(new Date());
const addDaysToDate = (date, days) => {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
};
const incrementCount = () => {
setCount((s) => s + step);
setDate(addDaysToDate(new Date(), count + step));
};
const decrementCount = () => {
setCount((s) => s - step);
setDate(addDaysToDate(new Date(), count - step));
};
const incrementStep = () => {
setStep((s) => s + 1);
};
const decrementStep = () => {
setStep((s) => s - 1);
};
return (
Title date={date.toDateString()} count={count} />
Step
step={step}
incrementStep={incrementStep}
decrementStep={decrementStep}
/>
Count
count={count}
incrementCount={incrementCount}
decrementCount={decrementCount}
/>
/>
);
}
جزء عنوان
تاریخ جاری را با یک پیام پویا بر اساس تعداد نمایش می دهد.
function Title({ date, count }) {
let message;
if (count 0) {
message = `${Math.abs(count)} days before today was ${date}`;
} else if (count > 0) {
message = `${count} days from today is ${date}`;
} else {
message = `Today is ${date}`;
}
return h1>{message}/h1>;
}
مولفه مرحله
تنظیم مقدار مرحله را کنترل می کند.
function Step({ step, incrementStep, decrementStep }) {
return (
div>
p>Step: {step}/p>
button onClick={incrementStep}>+/button>
button onClick={decrementStep}>-/button>
/div>
);
}
مولفه شمارش
تنظیم مقدار شمارش را مدیریت می کند.
function Count({ count, incrementCount, decrementCount }) {
return (
div>
p>Count: {count}/p>
button onClick={incrementCount}>+/button>
button onClick={decrementCount}>-/button>
/div>
);
}
شما می توانید کار پروژه را در اینجا مشاهده کنید:
نتیجه
این پروژه تمرینی عالی برای درک و اجرای مدیریت React State و تعامل اجزا بود. این به من اجازه داد تا همزمان با تقویت مفاهیم اصلی React، یک برنامه کاربردی ایجاد کنم. من هیجان زده هستم که این آموخته ها را در سناریوهای پیچیده تر به کار ببرم و به سفر خود در تسلط بر React ادامه دهم!
منتظر اطلاعات بیشتر در مورد سفر یادگیری من باشید! 🚀
با دنبال کردن لینکدین و گیت هاب من برای دریافت پست ها و نمونه کدهای دقیق، از پیشرفت من به روز بمانید.