ناوبری در اپلیکیشن انگولار – به زبان ساده

۱۹۳ بازدید
آخرین به‌روزرسانی: ۱۱ شهریور ۱۴۰۲
زمان مطالعه: ۵ دقیقه
دانلود PDF مقاله
ناوبری در اپلیکیشن انگولار – به زبان سادهناوبری در اپلیکیشن انگولار – به زبان ساده

زمانی که صفحه‌ای را رفرش یا بارگذاری مجدد می‌کنید در عمل فایل index.html را بارگذاری مجدد می‌کنید که به نوبه خود همه فایل‌های جاوا اسکریپت و CSS را بارگذاری مجدد می‌کند. برخی اوقات باید از یک اپلیکیشن تک‌صفحه‌ای به اپلیکیشن دیگری حرکت کنیم. در این مقاله با روش‌های مختلف ناوبری در اپلیکیشن انگولار برای جابجایی به وب‌سایت‌های بیرونی یا هر اپلیکیشن انگولار دیگر آشنا می‌شویم.

997696

رفتار اپلیکیشن‌های تک‌صفحه‌ای متفاوت است. این اپلیکیشن‌ها هر زمان که شما داده‌هایی را از سرور دریافت می‌کنید، صفحه را بارگذاری مجدد نمی‌کنند. این اپلیکیشن‌ها صرفاً فایل index.html را بارگذاری می‌کنند که شامل همه فایل‌های CSS و جاوا اسکریپت ضروری است. کل اپلیکیشن و هر مورد مرتبط با فریمورک در همین فایل‌های جاوا اسکریپت قرار دارد. به محض این که فایل index.html بارگذاری شود، فایل‌های جاوا اسکریپت در مرورگر رندر می‌شوند و فریمورک انگولار آغاز به کار کرده و عملیاتی می‌شود.

پروژه نمونه

در این بخش یک پروژه نمونه برای نمایش چهار روش مختلف ناوبری در اپلیکیشن انگولار معرفی می‌کنیم.

این پروژه (+) را می‌توانید به صورت زیر کلون کرده و روی سیستم لوکال خود اجرا کنید:

// clone the project
git clone https://github.com/bbachi/angular-navigate-external.git

// install and run
npm install
npm start

جابجایی با شیء Window

شیء Window یک شیء سراسری و نماینده پنجره باز مرورگر است. همه تابع‌ها و متغیرهای سراسری در واقع مشخصه‌های شیء Window هستند. تابع‌های سراسری به متدهای Window و متغیرهای سراسری به مشخصه‌های شیء Window تبدیل می‌شوند. امکان دسترسی به سند با استفاده از Window به صورت زیر وجود دارد:

حتی می‌توان به URL مرورگر در شیء window.location به صورت زیر دسترسی یافت:

در ادامه یک کامپوننت با استفاده از دستور ng g c windowobj می‌سازیم و کدهای زیر را در آن قرار می‌دهیم:

فایل windowobj.component.css

فایل windowobj.component.html

فایل windowobj.component.ts

شکل ظاهری این کامپوننت به صورت زیر است و زمانی که روی دکمه کلیک کنیم به صفحه اصلی وب‌سایت گوگل هدایت می‌شویم:

جابجایی با تگ href

این ساده‌ترین روش برای جابجایی محسوب می‌شود. تگ <a> نماینده یک هایپرلینک به صفحه دیگر است. خصوصیت href نشانی مقصد را نشان می‌دهد. با استفاده از دستور ng g c withhref کامپوننت را می‌سازیم و فایل‌های زیر را در آن قرار می‌دهیم:

فایل withhref.component.css

فایل withhref.component.html

شکل ظاهری این کامپوننت در مرورگر به صورت زیر است و زمانی که روی لینک کلیک کنیم به صفحه اصلی وب‌سایت گوگل هدایت می‌شویم:

جابجایی با Resolver

دو روش قبلی که بررسی کردیم، پیش از هدایت کاربر به وب‌سایت بیرونی، هیچ چیزی را بررسی نمی‌کردند. برای نمونه مواردی مانند مجوز یا دسترسی کاربر بررسی نمی‌شوند. با استفاده از Resolver می‌توان پیش از ارسال درخواست ناوبری آن را اعتبارسنجی کرد.

ابتدا باید Resolver را تعریف کنیم و سپس آن را در فایل Resolver بگنجانیم:

فایل app.module.ts

فایل app.resolver.ts

باید resolver را در فایل app-routing.module.ts تعریف کنیم:

در نهایت فایل‌های کامپوننت ما به شرح زیر هستند:

فایل withresolver.component.html

فایل withresolver.component.ts

شکل کلی این کامپوننت در مرورگر به صورت زیر است و زمانی که کاربر روی دکمه کلیک کند، به resolver می‌رود و سپس کاربر را ریدایرکت می‌کند:

جابجایی با Jquery

همه روش‌های قبلی که بحث شدند، در واقع درخواست‌های Get هستند. معنی آن این است که نمی‌توان دادهای زیادی به مقصد ارسال کرد. امکان ارسال مواردی با پارامترهای query وجود دارد اما مقدار داده‌هایی که ارسال می‌شوند محدود هستند و هیچ نوع امنیتی نیز ندارند.

در این وضیعت اگر بخواهیم به یک وب‌سایت بیرونی برویم و همراه با این جابجایی مقداری داده با خود ببریم و نخواهیم از پارامترهای query استفاده کنیم، ساده‌ترین راه حل استفاده از jquery است. ابتدا باید jquery را با دستور زیر نصب کنیم:

npm install jQuery –save

سپس خط زیر را در بخش اسکریپت‌های فایل angular.json می‌نویسیم:

همچنین باید jquery را به صورت یک متغیر سراسری اعلان کرده و از آن به روش معمول در کامپوننت استفاده کنیم. فایل component.ts به صورت زیر است:

فرم تعریف شده در فایل HTML به صورت زیر است. به id-های فرم و شیوه تنظیم داده‌ها با jQuery برای value1 و value2 دقت کنید.

فایل withjquery.component.html

نمایش آن در مرورگر به صورت زیر است و زمانی که روی دکمه کلیک کنید، Jquery فرم را با همه داده‌های آن به URL شکل someform.htm تحویل می‌دهد.

با استفاده از ابزارهای توسعه‌دهنده (DevTools) مرورگر می‌توانیم ببینیم که فرم و داده‌ها تحویل می‌شوند. حتی با این که URL ساختگی است، می‌توانید عملکرد آن را بررسی کنید:

جمع‌بندی

در این بخش مواردی که در این مقاله مطرح شد را جمع‌بندی می‌کنیم.

  • اپلیکیشن‌های تک‌صفحه‌ای فایل index و همه فایل‌های ضروری CSS و جاوا اسکریپت را در آغاز بارگذاری دانلود می‌کنند.
  • برخی اوقات باید از یک اپلیکیشن تک‌صفحه‌ای به وب‌سایت دیگری برویم. برای نمونه فرض کنید می‌خواهیم به سایت پرداخت برویم و بازگردیم.
  • چهار روش برای ناوبری به وب‌سایت خارجی وجود دارد که شامل استفاده از تگ href، شیء Window، resolver و تحویل فرم Jquery هستند.
  • روش‌های href و window روش‌های چندان ساده‌ای برای اعتبارسنجی درخواست کاربر پیش از ناوبری محسوب نمی‌شوند.
  • در انگولار می‌توان از resolver برای اعتبارسنجی استفاده کرد.
  • تحویل فرم jQuery برای ارسال داده‌ها روشی آسان است.

سخن پایانی

ناوبری در اپلیکیشن انگولار به یک وب‌سایت بیرونی امری کاملاً رایج است. شما می‌توانید هر یک از روش‌های چهارگانه‌ای که در این راهنما معرفی کردیم را به این منظور انتخاب کرده و بسته به نیازتان مورد استفاده قرار دهید. اگر یک درخواست Get بدون داده‌های فرم است می‌توانید هر یک از سه روش href ،window و resolver را انتخاب کنید، اما اگر می‌خواهید حجم زیادی از داده‌ها را نیز همراه با ناوبری حمل کنید، بهتر است از jQuery بهره بگیرید.

اگر این مطلب برای شما مفید بوده است آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
bb-tutorials-and-thoughts
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *