الزاوي مقابل رد الفعل. أو هو الزاوي الجديد القرف حقا؟

اهلا بالجميع،

أريد أن أتحدث عن أطر عمل JavaScript الأكثر شيوعًا. في رأيي ، هناك مجموعة من المقالات المقارنة عديمة الفائدة هناك. على الرغم من أنها تحتوي على رؤى مثيرة للاهتمام حقًا ، إلا أنه لا يوجد استخدام كبير لها.

يقول الكثير من الأشخاص أنه لا يمكنك مقارنتهم لأن Angular إطار عمل و React عبارة عن مكتبة. على الجانب الآخر ، يضيف معظم المطورين الذين يتفاعلون (الذين أعرفهم) بعض المكتبات ويحولونها إلى إطار كامل.

انتظر ، ربما شيء آخر؟

إنني مهتم حقًا ببرنامج Angular وأختاره للتطبيقات الصغيرة والمتوسطة ، ولكن بالنسبة للتطبيقات الكبيرة حقًا ، بلا شك ، سأختراق برنامج React. ولكن هناك الكثير من الخيارات الأخرى. وبعضهم يبلي بلاءً حسناً ، على سبيل المثال VueJS أو EmberJs تبدو جيدة حقًا. لكنني أعتقد أن الميزة التنافسية الرئيسية لـ Angular و React هي مجتمع المطورين. lib الوحيدة التي يمكنها مواكبة شعبيتها هي jQuery ، لكن دعونا لا نعتبر jQuery منافسًا لهذين الاثنين.

لذلك دعونا نبدأ الأمر. أيهما أفضل ، الزاوي أو الرد؟

إدارة الدولة

أعتقد أن أكبر الفرق بين الزاوي و React هو إدارة الدولة. الزاوي يأتي مع ربط البيانات المجمعة في حين React عادة لا يمكن أن يعيش حياة طويلة دون Redux الذي يوفر تدفق البيانات أحادي الاتجاه والعمل مع البيانات غير القابلة للتغيير. هذا يجلب لكثير من المناقشات ، أيهما أفضل؟ ربط البيانات أو غير قابل للتغيير / ملزم أحادي الاتجاه؟ بالتأكيد يعتمد على العديد من الجوانب.

النموذجيه

أعتقد أنه من الجدير حقًا أن نذكر كيف تعمل Angular بسهولة مع القوالب. وجود واجهة مستخدم بسيطة لبياناتك ، يتيح لك Angular الحصول على النتيجة المرجوة من خلال النهج الأكثر منطقية لواجهة المستخدم التي تتطلب رمزًا أقل ويبدو أكثر وضوحًا.

رد فعل يتطلب وظائف للتعامل مع تمثيل البيانات. هذا يعني أنه يجب عليك تحديد الطريقة التي يتم بها عرض البيانات الخاصة بك قبل إدراجها في DOM.

الأحجام والأداء

كما نعلم ، حجم الملف الزاوي أكبر بكثير من Reacts.

الزاوي 2 + RX = 766K
React 0.14.5 + React DOM + Redux = 139K

إصدارات GZipped

الزاوي 2 + RX = 143K
React 0.14.5 + React DOM + Redux = 42K

ولكن عندما تبدأ في تضمين الكثير من مكتبات الطرف الثالث مع React ، يميل حجم الحزمة أيضًا إلى النمو بسرعة.

قد يتسبب الأداء الزاوي 2 في حدوث بعض المشكلات عندما يتعلق الأمر بالتطبيقات الكبيرة حقًا ، لأنه ينشئ مراقبًا لكل ارتباط من أجل تتبع جميع التغييرات في DOM.

من ناحية أخرى ، جلبت React إلى الحياة مفهوم DOM الظاهري. في كل مرة تتغير فيها البيانات الأساسية في تطبيق React ، يتم إنشاء تمثيل DOM الظاهري جديد لواجهة المستخدم. بمعنى آخر ، في كل مرة يتفاعل فيها المستخدم مع موقع الويب React ، يُنشئ DOM افتراضي جديد. هذا هو السبب في أن أداء React مستقر عندما يتعلق الأمر بالكثير من البيانات حيث لا يوجد مراقبون.

مبادرة مجتمعية

الأطر الحديثة الاتجاه إلى أن يكون أداة CLI. يعمل CLI الخاص بـ Angular بشكل جيد ويوفر الكثير من الوقت. بفضل Angular-cli وتصميمه ، أصبح Angular سهل القياس. من ناحية أخرى ، React لديها CLI الخاص بها ، والذي تم تقديمه مؤخرًا ، لا يستخدم كثيرًا.

التصحيح

ومن المثير للاهتمام كيف يعالج كل منهم تصحيح الأخطاء. يميل الزاوي 2 وتصحيح وقت التشغيل إلى تزويدك بمعلومات أقل من React ، كما أنه يمكّن من تصحيح وقت الترجمة.

TypeScript والتدفق

TypeScript و Flow هما أداتان متشابهتان تركزان على نفس المشكلة: نقص JavaScript في الأنواع الثابتة. في النهاية ، كلاهما موجود لمساعدتك على كتابة التعليمات البرمجية الصحيحة. يوفر كلا TypeScript و Flow إمكانيات كتابة ثابتة ثابتة. كما أنها تستخدم بناء جملة مماثل لنوع التعليقات التوضيحية وملفات التعريف.

إذا كنت تعمل مع Angular ، فقد تفضل استخدام TypeScript لأنه اللغة السائدة المستخدمة في مجتمع Angular. إذا كنت تستخدم React ، من ناحية أخرى ، قد تفضل Flow لأنه يتكامل بسهولة مع Babel والبنية التحتية الأخرى التي ربما تكون موجودة بالفعل في مكانك.

يخشى الكثير من المطورين (خاصةً React) من TypeScript. لا يوجد شيء للخوف منه. انها مجرد ES6 + أنواع. ES6 هو رمز TypeScript صالح. لقد تأثرت بشدة من Java و .NET ، لذلك إذا كان لدى أحد المطورين خلفية في إحدى هذه اللغات ، فمن المرجح أن يجد TypeScript أسهل في التعلم من جافا سكريبت العادي.

عملية التعلم

في الزاوي هناك أشياء أكثر للتعلم مما في React. من ناحية أخرى ، عليك أن تتعلم الكثير عن أفضل ممارسات React ، فهناك العديد من الطرق التي يمكنك من خلالها فعل الشيء نفسه أو الخطأ.

سمعة الزاوي وأي إصدار الزاوي يجب أن تستخدمها؟

أعلم أن Angular يتم التعامل معها بطريقة غير عادلة من مجتمع JavaScript. كثير من الناس يعربون عن استيائهم من ذلك. في الواقع ، هناك بعض الأسباب لذلك ، لكنني أعتقد أن Angular 4 حلّت الكثير من المشاكل. كان هناك تحول هائل من AngularJS الأصلي إلى Angular الجديد. تم تحسين الأداء والتصميم بشكل كبير في Angular 2.0 بالمقارنة مع Angular 1 (حسب رأيي ، يجب عليك استخدام Angular 1 فقط إذا كنت خبيرًا ولديك مواعيد نهائية قوية). أعتقد أنه إطار عمل مثمر للغاية يمكن أن يكون أكثر نجاحًا إذا لم يكن هناك الكثير من الإصدارات ، والكثير من التغييرات. لقد أتيحت لي الفرصة لتغيير إصدار Angular من مرشح الإصدار 5 إلى 6 ، ثم إلى إصدار الإصدار. وهذا يعني إعادة كتابة التطبيقات بالكامل. لكن الآن ، الزاوية 4 تبدو مستقرة وموثوقة حقًا.

خاتمة

فهل الزاوي الجديد القرف حقا؟

لا ، ليس كذلك.

فيما يلي قائمة الاستخدامات الزاوي التفاعل.

إذا كنت تحب القوالب ، استخدم الزاوي.
بالنسبة للفرق والمشاريع الكبيرة ، سيكون React حلاً أفضل لأنه يتيح لك إعادة استخدام المكونات برمز أقل ونماذج أولية أسرع.
إذا كنت لا تحب قضاء الكثير من الوقت في الإعداد ، استخدم الزاوي.
للخبراء والمتحمسين JS سيكون React أسهل لإتقان.
أفضل إذا حاولت كل منهما :)