مهارتهای لازم:
CSS
در این سوال قصد داریم یک نقشه مارپیچ را با استفاده از CSS طراحی کنیم. المان های این نقشه از قبل طراحی شدهاند اما نه از رنگبندی برخوردار هستند نه از طرح بندی! ظاهر کلی برنامه به شکل زیر می باشد:
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
پروژه را با توجه به تصویری که در ابتدای صورت سوال قرار داده شده است تکمیل کنید. نکات زیر را در حین پیادهسازی مد نظر داشته باشید :
block
بر روی آنها اعمال شده است.#05b37b
) در بیاید.توضیحات فایل index.html :
styles.css
اعمال کنید. تغییرات در بقیه فایلها نادیده گرفته میشوند.مهارتهای لازم:
ReactJS
React Context
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
برای اجرای پروژه، باید NodeJS
و npm
را از قبل نصب کرده باشید.
theme-switcher
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm start
را برای راهاندازی پروژه اجرا کنید.http://localhost:3000/
میتوانید نتیجه را ببینید.ظاهر کلی برنامه بدین صورت است:
در این سوال میخواهیم با استفاده از context در ریاکت برنامهای بنویسیم که بتوانیم بین دو تم dark و light سوییچ کنیم.
ThemeProvider.jsx
: کد قسمت context را باید در این فایل بنویسید. مقدار اولیه تم باید light باشد.ThemeSwitcher.jsx
: در این فایل باید کد مربوط به تغییر تم را بزنید. در این فایل نیازی به تغییری قسمت return نیست.App.jsx
: در این فایل شما باید مقدار کنونی تم را از context بخوانید و به تابع Styles بدهید. در این فایل نیازی به ایجاد تغییرات در کامپوننت App و بخش return هر دو کامپوننت نیست.ThemeProvider.jsx
و ThemeSwitcher.jsx
و App.jsx
هستید.ThemeProvider.jsx
نیاز به اعمال تغییرات دارد و برای مابقی کامپوننتها نیازی به تغییری return آنها نیست.مهارتهای لازم:
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
ظاهر کلی برنامه بدین صورت است:
در این سوال میخواهیم برنامه بنویسیم که اعداد داخل یک آرایه را بتوانیم جابهجا کنیم (آرایه شامل اعداد یکتا می باشد). بدین صورت که در فیلد item عدد مورد نظر و در فیلد count مقدار جابهجایی آن عدد وارد میشود و براساس این مقادیر آرایه اولیه تغییر میکند. همچنین میتوان انتخاب کرد که عدد مورد نظر به سمت پایین یا بالا جابهجا شود.
در برنامه سه نوع خطا وجود دارد:
numbers-container
نمایش داده شود. هر عدد باید داخل یک تگ span
باشند.error-container
یک تگ p
با ایدی error
نوع خطا نمایش داده شود. (منظور از نوع خطا همان کلمه انگلیسی است.)p
با ایدی error
است.) پاک شود.script.js
هستید.script.js
را ارسال کنید.مهارتهای لازم:
CSS
ReactJS
ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
bourse
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm run server
را برای راهاندازی سرور پروژه اجرا کنید.npm start
در ترمینالی دیگر پروژه ریاکت را اجرا کنید.در این سوال شما باید صفحهای را تکمیل کنید که در آن اطلاعات مورد نیاز در فاصلهزمانیهای مشخص باید از سرور درخواست شود و به کمک پاسخی که دریافت میکنید به نمایش آن اطلاعات و رسم نموداری برای نمایش بهتر آنها در صفحه بپردازید.
شما باید ابتدا در فایل App.js
اطلاعات مورد نیاز خود را با ریکوئست GET زدن به آدرس زیر دریافت کنید.
در ساختار response دو مقدارِ value و name قرار دارد، که به صورت مثال به شکل زیر خواهد بود:
در ادامه شما باید دو کامپوننت <StockCard />
و <Chart />
را به همین ترتیب در فایلِ App.js
استفاده کنید و سپس باید به تکمیل آنها بپردازید.
در این سوال شما در بازههای زمانی که به کمک متغیر intervalTime تعیین میشود (به صورت مثال هر یک ثانیه) باید به سرور درخواست GET بزنید و تاریخچهای از responseهایی که دریافت میکنید را نگهداری کنید؛ چون برای «رسم نمودار» و همچنین «نمایش اطلاعات آخرین قیمت» به آنها نیاز خواهید داشت.
<StockCard />
شما باید موارد زیر را رعایت کنید:🔗title
نشان دهید.price
نشان دهید.percentage
نشان دهید.arrow
کلاسِ up
داده شود و اگر ارزش آن کاهش یافته باشد به آن کلاسِ down
اختصاص داده شود.percentage_up
و در صورت کاهش یافتن ارزش سهم، کلاسِ percentage_down
را میگیرد.نکته: دقت کنید که در این سوال باید «به محض لود شدن صفحه» اولین درخواست GET زده شود و قیمت و نام سهام را در صفحه داشته باشید (برای درصد تغییرات هم سه نقطه نمایش دهید)
<Chart />
شما باید موارد زیر را رعایت کنید:🔗chartContainer
پس از هربار اضافه شدن قیمت جدید در سهم، یک <div/>
اضافه کنید.<div/>
به میلههای نمودار باید ابتدا کلاسِ chart
را به آن اضافه کنید و سپس همانند کامپوننت بالا، با توجه به رشد و یا کاهش قیمت سهم یکی از دو کلاسِ chart_down
و یا chart_up
را نیز به آن بیفزایید.اگر ارزش سهم ۶۵۰۰ بود ارتفاع میله آن بدین شکل محاسبه میگردد:
App.js
به کمک متغیر intervalTime تعیین میشود، شما نیز باید در حل سوال باید حتما از همین متغیر به عنوان فاصله زمانی استفاده کنید و عدد را به صورت هاردکد ننویسید.شما تنها مجاز به اعمال تغییرات در فایلهای زیر هستید.
src/App.js
src/components/chart/Charts.jsx
src/components/stockCard/StockCard.jsx
مهارتهای لازم:
ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
issues-page
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm run server
را برای راهاندازی سرور پروژه اجرا کنید.npm start
در ترمینالی دیگر پروژه ریاکت را اجرا کنید.در این سوال قصد داریم صفحه issues سایت github را بسازیم.
برای گرفتن لیست issue ها از سرور باید درخواست GET به
این آدرس دوتا query دارد.
http://localhost:9000/issues?page=1&issuesFilter=0
پارامتر page: برای صفحه بندی استفاده میشود. فرض کنید اگر اندازه هر صفحه ۱۵ باشد صفحه اول ۱۵ تای اول و صفحه دوم ۱۵ تای بعدی و ... . مقدار پیشفرض آن برابر ۱ است.
پارامتر issuesFilter: مقدار 0 برای هیچ فیلتر، مقدار 1 برای گرفتن issue های open و مقدار 2 برای issue های closed. مقدار پیشفرض آن 0 است.
اطلاعات دریافتی شامل ارایهای از issue ها به صورت json است:
مواردی که باید در این پروژه ایجاد کنید:
نکته: فرض کنید تعداد کل issue هایی که در سرور وجود دارد، ۲۲ تا و اندازه هر صفحه ۱۵ است. در هنگام لود شدن صفحه یک درخواست و ۱۵ تا issue اول گرفته میشود، وقتی اسکرول میشود یک درخواست دیگر برای صفحه بعد ۷ تای باقیمانده رو میگیرد. با اسکرول بیشتر یک درخواست دیگر فرستاده میشود که لیست خالی میگیرد. وقتی به لیست خالی رسیدیم دیگر نباید درخواست دیگری با اسکرول کردن ارسال شود.
توجه: اگر ۱۵ تا issue داخل یک صفحه اسکرین شما جا میگیرد با زوم کردن کاری کنید که کمتر از ۱۵ تا issue بتواند دیده شود و اسکرول بار وجود داشته باشد.
شما تنها مجاز به اعمال تغییر در فایلهای زیر هستید:
src/hooks/useInfiniteScroll.js
src/components/IssueList.js
src/components/App.js