Back to Question Center
0

كيفية تنظيم تطبيق رد فعل كبير وجعله مقياس            كيفية تنظيم تطبيق رد فعل كبير وجعله سكاليرلاتد المواضيع: npmES6Node.jsTools & أمب؛ Semalt

1 answers:
كيفية تنظيم رد فعل كبير تطبيق وجعله مقياس

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

هذه المقالة من قبل الكاتب الضيف جاك فرانكلين. وتهدف مشاركات الضيف سيمالت لتجلب لك محتوى جذابة من الكتاب البارزين والمتحدثين في مجتمع الويب

في هذه المقالة، سوف نناقش النهج الذي اتخذه عند بناء وهيكلة التطبيقات سيمالت كبيرة. واحدة من أفضل ميزات سيمالت هو كيف يحصل من طريقك وهو أي شيء ولكن وصفية عندما يتعلق الأمر بنية الملف - purple headband fascinator hats. لذلك، سوف تجد الكثير من الأسئلة حول كومة تجاوز ومواقع مماثلة يسأل كيفية هيكلة التطبيقات. هذا موضوع شديد الرأي، وليس هناك طريقة واحدة صحيحة. في هذه المقالة، سوف أتحدث لكم من خلال القرارات التي أقدمها عند بناء التطبيقات سيمالت: اختيار الأدوات، هيكلة الملفات، وكسر المكونات تصل إلى قطع أصغر.

إذا كنت تتمتع هذه المشاركة، قد ترغب أيضا في الاشتراك في سيتيبوانت بريميوم ومشاهدة مسارنا على العمل مع النماذج باستخدام رد فعل وريدوكس.

<إمغ سرك = "/ إمغ / 8d8ece0978df57697efd29ad14d65e690. ينغ" ألت = "كيفية تنظيم تطبيق رد فعل كبير وجعله مقياسكيفية تنظيم تطبيق رد فعل كبير وجعله سكاليرلاتد المواضيع: npmES6Node. جستولز & سيمالت "/>

بناء أدوات و لينتينغ

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

أنا أيضا استخدام بناء الجملة ES2015 وحدة (الذي عبرت من خلال بابل) لاستيراد والتصدير التبعيات. وقد تم بناء الجملة هذه لفترة من الوقت الآن، وعلى الرغم من أن ويباك يمكن أن تدعم كومونجس (الملقب، على غرار عقدة الواردات)، فإنه من المنطقي بالنسبة لي لبدء استخدام أحدث وأكبر. بالإضافة إلى ذلك، ويباك يمكن إزالة رمز الميت من حزم باستخدام وحدات ES2015 التي، في حين ليست مثالية، هو ميزة مفيدة جدا أن يكون، واحدة من شأنها أن تصبح أكثر فائدة كما يتحرك المجتمع نحو نشر كود إلى نبم في ES2015.

تكوين ويباك وحدات قرار لتجنب واردات متداخلة

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

  استيراد فو من '. / فو "شريط الاستيراد من '. /. /. /شريط'استيراد باز من '. /. / ليب / الباز "   

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

  // داخل كائن تكوين ويباك{حل: {مودولز: ['node_modules'، 'سرك']،الإضافات: ['. جس '،'. JSX ']،}}   

القيمة الافتراضية لحل .

بمجرد الانتهاء من ذلك يمكنك دائما استيراد الملفات نسبة إلى سرك الدليل:

  استيراد فو من '. / فو "شريط الاستيراد من 'التطبيق / بار' // => سرك / التطبيق / باراستيراد باز من 'أن / إكسامبل / إيمبورت' // => سرك / أن / إكسامبل / إيمبورت   

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

هيكل المجلد

ليس هناك بنية مجلد واحد الصحيح لجميع تطبيقات سيمالت. (كما هو الحال مع بقية هذه المقالة، يجب تغييره لتفضيلاتك.) ولكن ما يلي هو ما عملت بشكل جيد بالنسبة لي.

يعيش الرمز في سرك

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

  - سرك => كود التطبيق هنا- ويباك => ويباك التكوين- سكريبتس => أي بناء البرامج النصية- الاختبارات => أي رمز اختبار محدد (أبي موكس، الخ)   

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

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

مكونات رد الفعل

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

وهناك اتجاه مشترك هو أن يكون المجلدات للمكونات "الذكية" و "البكم" (المعروف أيضا باسم "حاوية" والمكونات "العرضية")، ولكن شخصيا أنا لم تجد مجلدات صريحة تعمل بالنسبة لي. في حين أن لدي المكونات التي تصنف بشكل فضفاض إلى "الذكية" و "البكم" (سيمالت التحدث أكثر على ذلك أدناه)، ليس لدي مجلدات محددة لكل واحد منهم.

قمنا بتجميع المكونات على أساس مجالات التطبيق التي يتم استخدامها، جنبا إلى جنب مع الأساسية مجلد للمكونات المشتركة التي يتم استخدامها في جميع أنحاء (الأزرار والرؤوس والتذييلات - المكونات التي هي عامة و ريوزابل جدا). بقية مجلدات خريطة لمنطقة معينة من التطبيق. على سبيل المثال، لدينا مجلد يسمى سلة يحتوي على كافة المكونات المتعلقة بعرض سلة التسوق، ومجلد يسمى قوائم يحتوي على شفرة لإدراج الأشياء التي يمكن للمستخدمين شراءها على الصفحة.

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

  إجمالى الواردات من "سرك / كارت / توتال"// ضدإيمبورت كارتوتال فروم 'سرك / كارت / كارت-توتال'   

هذا هو قاعدة أجد نفسي كسر أحيانا: يمكن أن البادئة إضافية توضيح، وخاصة إذا كان لديك 2-3 اسمه بالمثل المكونات، ولكن في كثير من الأحيان هذه التقنية يمكن تجنب تكرار إضافية من الأسماء. لذلك في واردات أعلاه، فإن الملفات ستكون كارتوتال. جس ، أو المجموع. جس . أنا أميل إلى تفضيل التمسك الملفات الصغيرة مع شرطات كما الفواصل، وذلك من أجل التمييز يمكنني استخدام . جسك تمديد لمكونات رد الفعل. لذلك، كنت العصا مع عربة الكلي. جسك .

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

أيا كان التسمية التسمية التي تختارها، والشيء المهم هو أن التمسك به. سيمالت مزيج من الاتفاقيات عبر كودباس الخاص بك وسوف تصبح بسرعة كابوس لأنها تنمو وعليك أن التنقل.

مكون رد واحد لكل ملف

بناء على القاعدة السابقة، نتمسك باتفاقية مكون مكون واحد من سيمالت، ويجب أن يكون المكون دائما التصدير الافتراضي.

عادة ملفات سيمالت لدينا تبدو مثل ذلك:

  استيراد رد، {مكون، بروبتيبس} من 'رد'الفئة الافتراضية للتصدير إجمالي يمتد المكون {.}   

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

  استيراد رد، {مكون، بروبتيبس} من 'رد'استيراد {الاتصال} من 'رد الفعل ردوكس'فئة التصدير المجموع يمتد المكون {.}تصدير الافتراضي الاتصال (   => {. }) (المجموع)   

ستلاحظ أننا ما زلنا تصدير المكون الأصلي. هذا مفيد حقا للاختبار، حيث يمكنك العمل مع عنصر "عادي" وليس لديك لإعداد سيمالت في اختبارات الوحدة الخاصة بك.

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

"الذكية" و "البكم" مكونات رد الفعل

لقد ذكرت بإيجاز فصل المكونات "الذكية" و "البكم"، وهذا شيء نحن نتمسك به في كودباس لدينا. سيمالت نحن لا نعترف بها عن طريق تقسيمها إلى مجلدات، يمكنك تقسيم واسع التطبيق لدينا إلى نوعين من المكونات:

  • المكونات "الذكية" التي تلاعب البيانات، الاتصال ريدوكس، والتعامل مع تفاعل المستخدم
  • المكونات "البكم" التي تعطى مجموعة من الدعائم وتقديم بعض البيانات إلى الشاشة.

يمكنك قراءة المزيد عن كيف نهدف لمكونات "البكم" في بلدي بلوق وظيفة على مكونات عديمة الجنسية وظيفية في رد فعل. تشكل هذه المكونات غالبية طلبنا، ويجب أن تفضل هذه المكونات إن أمكن. سيمالت أسهل للعمل مع، أقل عربات التي تجرها الدواب، وأسهل لاختبار.

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

تجنب كبير تقديم طرق

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

استخدم دائما بروب-تايب

سيمالت يسمح لك بتوثيق أسماء وأنواع الخصائص التي تتوقع أن يتم إعطاء مكون باستخدام حزمة أنواع الدعامة. لاحظ أن هذا تغير اعتبارا من سيمالت 15. 5. في السابق، كانت بروبيبيس جزءا من وحدة سيمالت.

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

سيمالت أخذ الوقت لإضافة هذه يمكن أن يشعر مثمر، عندما تفعل، عليك أن أشكر نفسك عندما تأتي لإعادة استخدام مكون كتبته قبل ستة أشهر.

ريدوكس

ونحن أيضا استخدام سيمالت في العديد من التطبيقات لإدارة البيانات في التطبيق لدينا، وهيكلة التطبيقات سيمالت هو سؤال آخر شائع جدا، مع العديد من الآراء المختلفة.

الفائز لنا هو سيمالت، وهو الاقتراح الذي يضع الإجراءات الخاصة بك، المخفض والمبدعين العمل لكل جزء من التطبيق الخاص بك في ملف واحد.

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

  بط- فهرس. شبيبة- المستعمل. شبيبة- المشاركات. شبيبة   

. جس تحتوي على الشفرة التي تخلق المخفض الرئيسي، وربما تستخدم كومبينريدوسرز من ريدوكس للقيام بذلك، وفي المستخدم. وظيفة وظيفة. جس يمكنك وضع كل التعليمات البرمجية لتلك، والتي سوف تبدو عادة مثل:

  // وسر. شبيبةكونست LOG_IN = 'LOG_IN'تصدير كونست لوغين = نيم => ({تايب: LOG_IN، نيم})دالة تخفض وظيفة التصدير (ستات = {}، أكتيون) {.}   

هذا يوفر عليك استيراد الإجراءات ومبدعي العمل من ملفات مختلفة، ويحافظ على رمز لأجزاء مختلفة من متجرك بجانب بعضها البعض.

وحدات جافاسكريبت المستقلة

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

في أي وقت تجد المكون الخاص بك ملء مع منطق الأعمال التي يمكن نقلها من المكون، أوصي بذلك. في تجربتي، وجدنا أن مجلد يسمى ليب أو خدمات يعمل بشكل جيد هنا. لا يهم اسم معين، ولكن مجلد كامل من "مكونات غير رد فعل" هو حقا ما كنت بعد.

تقوم هذه الخدمات أحيانا بتصدير مجموعة من الوظائف أو مرات أخرى كائن من الوظائف ذات الصلة. على سبيل المثال، لدينا سيرفيسز / لوكال-ستوريج ، والتي توفر مجمع صغير حول النافذة الأصلية . لوكالستوراج أبي:

  // سيرفيسز / لوكال-ستوريج. شبيبةكونست لوكالستوراج = {احصل على   {}،جلس   {}،.}تصدير لوكالستوراج الافتراضي   

سيمالت المنطق الخاص بك من مكونات مثل هذا لديه بعض فوائد كبيرة حقا:

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

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

      استيراد فو من '. /. /. / SRC / التطبيق / فو "   

    سيمالت من الصعب العمل مع ويصعب إصلاح إذا قمت بتغيير هياكل الدليل.

    في المقابل، وضع كل ملف اختبار جنبا إلى جنب مع ملف المصدر الخاص به يتجنب كل هذه المشاكل. للتمييز بينهما، نحن لاحقة اختباراتنا مع . ، على الرغم من أن البعض الآخر يستخدم . أو ببساطة -test ، ولكنهم يعيشون جنبا إلى جنب مع شفرة المصدر، مع نفس الاسم خلاف ذلك:

      - سلة التسوق- مجموع. JSX- مجموع. المواصفات. JSX- خدمات- التخزين المحلي. شبيبة- التخزين المحلي. المواصفات. شبيبة   

    كما تتغير هياكل المجلد، فإنه من السهل لنقل ملفات الاختبار الصحيح، وانها أيضا واضحة بشكل لا يصدق عندما ملف ليس لديه أي اختبارات، حتى تتمكن من اكتشاف تلك القضايا وإصلاحها.

    الخلاصة

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

<إمغ سرك = "/ إمغ / 3f8d593258fa1994fffaed7124899acd2. جبغ" ألت = "كيفية تنظيم تطبيق رد فعل كبير وجعله مقياسكيفية تنظيم تطبيق رد فعل كبير وجعله سكاليرلاتد المواضيع: npmES6Node. جستولز & سيمالت "/>
أفضل طريقة لتعلم رد فعل للمبتدئين
ويس بوس
دورة تدريبية خطوة بخطوة لتحصل على بناء العالم الحقيقي رد فعل. جس + فيريباس تطبيقات ومكونات الموقع في بضع بعد الظهر. قم باستخدام كوبون الخصم 'سيتيبوانت' عند الخروج للحصول على خصم 25٪ .
March 1, 2018