نقدم لك ترجمة لمقالة Aditya Modi المنشورة على blog.bitsrc.io. تتناول هذه المقالة استخدام jQuery في التطبيقات الزاوية.

من النادر أن أتناول شيئًا بحذر. ومع ذلك ، لن يؤذي الحذر هذا الوقت ، لأن دمج مسج في الزاوي ليس بهذه البساطة.
لماذا ، في الواقع ، كتبت هذا المقال؟ أحيانًا يكون jQuery ضروريًا جدًا للتطوير على Angular ، ومع ذلك ، نادراً ما ترتبط أطر عمل JavaScript هذه بهذه المكتبة. Angular مسؤولة عن تقديم DOM وإدارتها ، وإذا قمت بإجراء تغييرات عليها باستخدام jQuery ، فستواجه خطر الحصول على نتيجة غير متوقعة للغاية.
نصيحة : باستخدام 
Bit ، يمكنك مشاركة المكونات Angular بسرعة وإعادة استخدامها في تطبيقاتك. سيتيح لك ذلك وفريقك قضاء وقت أقل في إنشاء تطبيقات جديدة. محاولة إعطائها.

سواء كان ذلك في بعض الحالات ، فإن التدخل في الإطار ضروري ومبرر ، ويمكن أن يكون مخرجًا حقيقيًا. هذه الحالات غير مشمولة في مدونتي ، ومع ذلك ، ربما سأتحدث عنها في مقالاتي القادمة. الآن ، اسمحوا لي أن أريك كيفية إضافة مكتبة مسج إلى Angular. في هذا البرنامج التعليمي ، سأستخدم رمز VS. يمكنك اختيار محرر برامج آخر أو تنزيل 
Visual Studio Code لنظام التشغيل Windows و Linux و macOS .
تكامل مسج في الزاوي
بادئ ذي بدء ، نحن بحاجة إلى إنشاء تطبيق Angular باستخدام الأمر 
ng new . بعد ذلك ، باستخدام 
cd نذهب إلى المجلد حيث سيتم تثبيت مكتبة jQuery من خلال npm. دعونا ندعو تطبيق 
angularmeetsjquery الناتج.
 ng new angularmeetsjquery cd angularmeetsjquery npm install jquery — save 
تبدو رائعة ، ولكن يفضل خالص jQuery التنزيل عبر jQuery CDN بدلاً من npm. CDN هي طريقة بديلة لإضافة مكتبة مسج إلى تطبيق Angular ، لكنني أفضل استخدام طريقة npm. إذا نظرت إلى 
https://jquery.com/download/ ، فستجد مكتبات jQuery CDN وشبكات CDN الأخرى من Google و Microsoft و CDNJS و jsDelivr. أوصي بأحدث إصدار رسمي من CDN ، لأنه يدعم آلية SRI (نزاهة المصدر الفرعي).
لاستخدام jQuery CDN ، ما عليك سوى إنشاء رابط للملف في علامة 
script مباشرةً من مجال jQuery CDN. سيبدو رمز مع وظيفة تكامل مصدر فرعي مثل هذا. (كما ترون ، أنا أستخدم إصدار مكتبة jQuery 3.3.1.)
 <script src=”https: 
يمكن نسخ البرنامج النصي من مورد code.jquery.com. بعد ذلك ، تحتاج إلى إدراجه في ملف 
index.html في نهاية العلامة < 
body >.
جعل مكتبة jQuery عالمية
ملف 
jquery.min.js ، الموجود في مجلد dis من وحدة jQuery ، ليس عامًا (الاسم الصحيح للمجلد هو dist. - 
Ed. ). لجعل مكتبة jQuery عالمية ، انتقل إلى الملف 
.angular-cli.json واكتب رابطًا إلى المسار إلى ملف jQuery.
عند نقل رابط إلى مسار ملف داخل تطبيق Angular ، يكون المجلد الجذر هو src. ومع ذلك ، توجد مكتبة jQuery داخل دليل 
node_modules . لذلك ، تحتاج إلى تحديد المسار الصحيح إلى 
.angular-cli.json .
 ../node_modules/jquery/dist/jquery.min.js 
للتأكد من صحة المسار ، انتقل إلى دليل 
node_modules→jquery→dist→jquery.min.js . هنا يمكنك رؤية المسار المحدد ، مما يعني أنه تمت إضافة مكتبة jQuery على مستوى العالم لهذا التطبيق. لا تتوقع إعادة تحميل المضيف المحلي: 4200 صفحة في المستعرض الخاص بك ، لأن الملف موجود خارج مجلد src. لكي تظهر التغييرات في التطبيق ، يجب عليك إعادة تشغيلها.
 ng serve –open 
باستخدام مسج في تطبيق الزاوي
لبدء استخدام مكتبة jQuery مع إطار عمل الزاوي ، تحتاج إلى الانتقال إلى مكونات التطبيق. سأوضح لك كيف يمكن لهاتين التقنيتين العمل مع عنصر HTML بسيط 
button . لكن أولاً ، احذف جميع سطور التعليمات البرمجية في ملف 
app.component.html وأضف عنصر HTML إلى 
button .
 <button> Click me </button> 
سيتم إعادة تحميل الصفحة تلقائيًا ، ثم سيظهر زر.

نحتاج إلى تعيين حرف jQuery في ملف 
app.component.ts .
 declare var $: any; 
ثم قم بإدخال ربط دورة حياة 
ngOnInit . للقيام بذلك ، يمكنك استيراد OnInit من Angular Core.
 import { Component, OnInit} from '@angular/core'; 
أضف 
ngOnInit .
 export class AppComponent implements OnInit { 
بغض النظر عن جاهزية DOM ، يمكنك كتابة كود jQuery داخل طريقة 
ngOnInit ، كما هو الحال مع تطوير تطبيقات الويب القياسية. لاختبار الزر الذي تم إنشاؤه في 
app.component.html ، أضف الحدث 
button.click إلى طريقة 
button.click .
 export class AppComponent implements OnInit { ngOnInit(){ $('button').click(function(){ alert('Wass up!'); }); } } 
إذا قمت بالنقر فوق الزر ، فسيظهر "Wass Up".
استنتاج
إضافة jQuery إلى الزاوي وكذلك استخدام هذه الحزمة هي فكرة مشكوك فيها.
نعم ، للوهلة الأولى تبدو الطريقة بسيطة. ومع ذلك ، كما قلت في بداية المقال ، بغض النظر عن مدى إغراء الاستخدام المشترك لهاتين التقنيتين ، فإن الفكرة غالباً ما تكون سيئة. في التطبيقات الزاويّة الواقعية ، عليك التعامل مع أشياء أكثر تعقيدًا من عنصر 
button HTML المرتبط بالحدث. نصيحتي لكل من 
يعمل مع Angular ويبحث عن فرصة لتضمين مسج في كود TypeScript: إذا لم يكن ضروريًا ، فلا. أتمنى لك تجارب ناجحة في مجال مسج الزاوي!