اضافه کردن لوگو و منوی Navigation به برنامه

خرید بک لینک

اضافه کردن لوگو به برنامه

در قسمت قبل Toolbar را ایجاد کردیم و حالا باید کامپوننت لوگو را بنویسیم. دلیل اینکه لوگو کامپوننت جداگانه ی خود را دارد این است که بتوانیم در هر جایی از برنامه که خواستیم به سرعت و به راحتی از آن استفاده کنیم. برای شروع کار در پوشه ی components یک پوشه ی جدید به نام Logo ایجاد کنید و فایلی به نام Logo.js در آن بسازید. حالا پوشه ی assets را پیدا کنید و یک پوشه ی دیگر به نام images در آن بسازید. images جایی است که باید تصویر لوگو را در آن قرار دهید. شما می توانید این تصویر را از این لینک دانلود کنید.

حالا به Logo.js بروید و کدهای آن را بنویسید:

من از عمد یک قسمت از این کدها را اشتباه نوشته ام. آیا می توانید حدس بزنید کدام قسمت؟

مقدار src برای تگ img باید به صورت پویا آدرس دهی شود نه به صورت دستی چرا که در حال حاضر ما در حالت development mode هستیم و پس از پایان کدنویسی پروژه به حالت production میرویم. در این حالت webpack تمام فایل ها را جا به جا و در هم ادغام میکند و دیگر چنین ساختاری برای پوشه ها و فایل ها نخواهیم داشت و تمام این آدرس ها به هم خواهد ریخت. بنابراین:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکانپذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

در واقع باید تصویر را import کنیم تا به webpack بفهمانیم که زمان ادغام کردن فایل ها و بهینه سازی تصاویر (به صورت خودکار انجام می شود) حواسش به این تصویر باشد و آن را در مکان صحیحی قرار بدهد.

حالا در کنار Logo.js یک فایل Logo.module.css نیز بسازید و محتویات زیر را در آن کپی کنید:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکانپذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

اگر فایل ها را ذخیره کنید و وارد مرورگر شوید با چنین صفحه ای مواجه می شوید:

تصویری از <strong>لوگو</strong>ی <strong>اضافه</strong> شده به <strong>برنامه</strong>
تصویری از لوگوی اضافه شده به برنامه

این لوگوی ما است!

ساخت منوی Navigation

حالا نوبت به اضافه کردن آیتم های navigation است؛ می خواهیم برای آیتم های navigation یک کامپوننت جداگانه بسازیم بنابراین درون پوشه ی Navigation یک پوشه ی دیگر به نام NavigationItems بسازید که حاوی فایل NavigationItems.js باشد. وارد این فایل شوید و کدهای آن را بنویسید:

قرار است شکل کلی آیتم های navigation ما بدین شکل باشند. شما می توانید تمام آیتم ها را در همین کامپوننت بنویسید اما از آنجایی که من می خواهم استایل های خاص را به تک تک آیتم ها بدهم برایشان یک کامپوننت جداگانه می سازم (شما مجبور نیستید چنین کاری بکنید)؛ درون پوشه ی NavigationItems یک پوشه ی دیگر به نام NavigationItem بسازید که حاوی فایلی به نام NavigationItem.js باشد. در ابتدا محتویات فایل NavigationItem.js بدین شکل خواهد بود:

یعنی <li> ها را از فایل NavigationItems برداشتیم و درون این کامپوننت قرار دادیم. حالا برای هر دو کامپوننت (NavigationItem و NavigationItems) فایل های CSS می خواهیم که طبق روال آن ها را به صورت NavigationItem.module.css و NavigationItems.module.css در کنار فایل های جاوا اسکریپتی شان ایجاد می کنیم.

محتویات فایل NavigationItems.module.css بدین شکل است:

من به شما گفته بودم که قرار است برنامه را mobile-first طراحی کنیم ولی الان در حال طراحی به صورت desktop-first هستیم؛ دلیلش این است که هنوز منوی کشویی (side drawer) را نداریم تا بتوانیم شکل آیتم ها را در آن ببینیم بنابراین فعلا به همین صورت کار را جلو می بریم و زمانی که Side drawer ساخته شد کدها را تغییر خواهیم داد.

حالا وارد فایل NavigationItem.module.css می شویم:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکانپذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

اکنون که آیتم های navigation درون لیست <ul> قرار گرفته اند باید فکری به حال خود آیتم ها بکنیم. هر آیتم یا لینک یک آدرس خاص به همراه متن خاصی دارد که قرار است به صورت props به آن پاس داده شود بنابراین میتوانیم وارد فایل NavigationItem.js شده و کد را بدین شکل تغییر بدهیم:

در اینجا گفته ایم لینک را از یک prop به نام link بگیر (props.link) که هنوز آن را پاس نداده ایم. سپس برای className از اپراتور ترنری استفاده کرده ایم که اگر props.active پاس داده شده بود، کلاس active در فایل CSS را روی این تگ a اعمال کن و در غیر این صورت null را اعمال کن (یعنی هیچ کلاسی نداشته باشد). در آخر هم برای متن لینک ها props.children را داده ایم تا خودمان بتوانیم لینک ها را مشخص کنیم. حالا به فایل NavigationItems.js برگردید و در قسمت JSX می گوییم:

ما هنوز در برنامه ی مان صفحات واقعی و routing نداریم بنابراین مقدار لینک ها را روی همان صفحه ی اصلی گذاشته ایم (مقدار link را از کد بالا می بینید). همچنین از آنجایی که active یک مقدار Boolean است نیازی نیست که آن را به شکل زیر بنویسیم:

گرچه اگر دوست دارید، دستتان آزاد است که از شکل کامل آن (کد بالا) استفاده کنید ولی همان active خالی کافی است.

در آخر برای نمایش داده شدن این کدها به فایل Toolbar.js میرویم و آن را در قسمت JSX اضافه می کنیم:

حالا می توانید به مرورگر بروید و نتیجه را مشاهده کنید:

<strong>منوی</strong> navigation با دو آیتم فعلی
منوی navigation با دو آیتم فعلی

در قسمت بعدی به سراغ منوی کشویی و طراحی موبایل می رویم.

کارت ویزیت لایه باز...

ما را در سایت کارت ویزیت لایه باز دنبال می‌کنید

برچسب: نویسنده: بازدید: 99 تاريخ: پنجشنبه 14 آذر 1398 ساعت: 17:35

صفحه بندی