العودة إلى المدونة

التنقل باستخدام RouterLink و Navigate و NavigateByUrl في Angular Router

التنقل باستخدام RouterLink و Navigate و NavigateByUrl في Angular Router

مقدمة

Angular تطبيقات شائعة جدًا هذه الأيام. وهي مبنية على مفهوم Single Page Applications (SPA). في مثل هذه التطبيقات، يختلف التوجيه عبر صفحات الويب عن المواقع التقليدية نظرًا لاستخدام المكونات. في Angular، تحتاج إلى استخدام RouterLink للتنقل للتوجيه عبر التطبيق. RouterLink هو توجيه (directive)، ويوفر Router.navigate و Router.navigateByURL طرقًا للتنقل عبر فئات المكونات.

في هذا البرنامج التعليمي، سنقوم بـ إلقاء نظرة على RouterLink, Router.navigate, و Router.navigateByURL جنبًا إلى جنب مع كود أمثلة.

RouterLink

في HTML، يتم إدراج الرابط عادةً باستخدام علامة الإرساء (anchor tag) <a> كما هو موضح أدناه:

سيقوم هذا الرابط التجريبي بتوجيه المستخدم إلى صفحة /sample . ومع ذلك، كما ذكرنا أعلاه، فإن تطبيق الصفحة الواحدة (SPA) لا يحتوي على صفحات مختلفة للربط بها. بدلاً من ذلك، يحتوي على طرق عرض أو مكونات مختلفة لعرضها للمستخدم.

إذا كنت بحاجة إلى السماح للمستخدم بالتنقل وتغيير طريقة العرض، فسيتعين عليك استخدام توجيه RouterLink بدلاً من href:

هذا المثال لـ RouterLink سيقود المستخدم إلى المكون الموجود في /users/example. يمكن أيضًا تمرير أجزاء عنوان URL المختلفة في مصفوفة كما في المثال التالي:

تم تنسيق هذين المثالين بطريقة مختلفة، ولكن سيتم توجيههما لا يزال إلى نفس المكون في /users/example.

  • المسار النسبي

يسمح RouterLink بتحديد عناوين URL النسبية. يمكننا استخدام ../ للانتقال إلى مستويات أعلى من التنقل. فيما يلي كيف يمكننا تحقيق ذلك:

في المثال أعلاه، إذا كان المستخدم في /users/posts، فإن التنقل سيأخذ المستخدم إلى /posts/parent. يمكنك أيضًا تحديد عناوين URL نسبيًا باستخدام ./, ../، أو حتى بدون شرطة مائلة بادئة إذا لزم الأمر.

  • المعلمات (Parameters)

قد تكون هناك سيناريوهات تحتاج فيها إلى تمرير البيانات بين المسارات. مثال بسيط هو عندما يملأ المستخدم النموذج وتأخذه إلى الجزء التالي من النموذج لمزيد من التفاصيل.

لتمرير المعلمات، يتم تمرير كائن يغلف البيانات في قائمة أجزاء عنوان URL:

أعلاه، سيقوم الـ Router بالتنقل إلى /users;display=sample/xyz.

  • المنافذ المسماة (Named Outlets)

منافذ التوجيه المسماة هي ببساطة منافذ توجيه ذات أسماء. دعونا نلقي نظرة على الكود الخاص بذلك:

في هذا المثال، سيتم وضع الجزء xyz في المنفذ المسمى side. يمكننا أيضًا تحديد منافذ مسماة متعددة كما يلي:

سيؤدي هذا إلى استبدال الجزء first بـ abc ويتم استبدال الجزء second بـ xyz.

Router

في Angular، الـ Router تُستخدم الفئة لتحديد المسارات والتنقل عبرها. ويتم تحقيق ذلك بطريقتين: Router.navigate و Router.navigateByUrl. تعيد كلتا الطريقتين وعدًا (promise). يمكن أن يحتوي هذا الوعد على ثلاث قيم: true, false، أو null.

  • تكون القيمة true عندما يكون التنقل ناجحًا.

  • تكون القيمة null عندما لا يكون هناك تنقل.

  • و false إذا فشل التنقل لسبب ما.

إذا كنت تريد إتاحة هذه الطرق في تطبيقك، فستحتاج أولاً إلى استيراد الفئة Router في فئة المكون (component class) الخاصة بك:

بعد ذلك، تحتاج إلى حقن Router في المنشئ (constructor) ضمن التبعيات:

باستخدام هذا الإعداد، ستكون جاهزًا لاستخدام الطريقتين Router.navigate و Router.navigateByUrl في تطبيقك.

Router.navigate

إنّ طريقة Router.navigate تقبل مصفوفة من أجزاء عنوان URL. دعنا نلقي نظرة على مثال أساسي لكود Router.navigate :

Router.navigateByUrl

أخيرًا، دعنا نلقي نظرة على Router.navigateByUrl. تشبه هذه الطريقة Router.navigate ولكن بدلاً من قبول أجزاء عنوان URL، فإنها تقبل سلسلة نصية تحدد عنوان URL. يجب أن يكون هذا التنقل مطلقًا ويجب أن يحتوي على / في بدايته:

سينقل الكود أعلاه المستخدم إلى صفحة /users;all=true.

الخاتمة

في هذا البرنامج التعليمي، ألقينا نظرة على كيفية التنقل في تطبيقات Angular باستخدام RouterLink. يختلف التوجيه (Routing) في تطبيقات Angular قليلاً عن تطبيقات الويب التقليدية لكونها تطبيقات صفحة واحدة (Single-Paged). يمكن أن تساعد معرفة RouterLink ووظائفه المطورين في بناء توجيه قوي.

تستخدم تطبيقات Angular Node.js كبيئة تشغيل خاصة بها. إذا كنت تريد معرفة المزيد عن Node.js وكيفية نشر تطبيقات Node.js، يمكنك إلقاء نظرة على البرامج التعليمية التالية:

حوسبة سعيدة!

author

Hark Labs

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.