Back to Question Center
0

بناء رد فعل التطبيق بلوق العالمي: دليل خطوة بخطوة            بناء رد فعل التطبيق بلوق العالمي: دليل خطوة بخطوة ريلاتد سيمالت: AngularJSNode.jsReactAjaxES6More ... الرعاة

1 answers:
بناء رد فعل التطبيق بلوق العالمي: دليل خطوة بخطوة

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

هذه مشكلة حاول بعض المطورين حلها بطرق مختلفة:

  1. إضافة نسخة مجزأة من موقع على شبكة الانترنت، مما يتطلب أن تكون جميع الصفحات متاحة في شكل ثابت ويضيف الكثير من العمل الإضافي (الآن مهملة) - gadget watches amazon.
  2. استخدام خدمة مدفوعة إلى أون-بروتيرفيدي سبا إلى ترميز ثابت لعناكب محرك البحث للزحف.
  3. الثقة بأن محركات البحث أصبحت متقدمة بما فيه الكفاية لقراءة محتوى جافا سكريبت فقط. (أنا لن أفعل بعد.)

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

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

Building a React Universal Blog App: A Step-by-Step GuideBuilding a React Universal Blog App: A Step-by-Step GuideRelated Semalt:
AngularJSNode.jsReactAjaxES6More. Sponsors

الشروع في العمل

سيكون لدينا بلوق العالمي التطبيق الاستفادة من التقنيات والأدوات التالية:

  1. العقدة. جس لإدارة الحزم وتقديم جانب الخادم
  2. الرد على مشاهدات واجهة المستخدم
  3. اكسبرس لسهولة الخلفية الإطار خادم جس
  4. رياكت روتر فور روتينغ
  5. رد فعل محمل الساخن لتحميل الساخنة في التنمية
  6. تدفق تدفق البيانات
  7. الكونية شبيبة لإدارة المحتوى

للبدء، قم بتشغيل الأوامر التالية:

     مكدير رياكت-ونيفرزال-بلوغسد رد الفعل العالمي-بلوق    

الآن إنشاء حزمة. جسون ملف وإضافة المحتوى التالي:

   {"نيم": "رياكت-ونيفرزال-بلوغ"،"فيرسيون": "1. 0. 0"،"محركات": {"عقدة": "4. 1. 2"،"نبم": "3. 5. 2"}،"وصف": ""،"الرئيسية": "أب-سيرفر. جس"،"ديبندنسس": {"بابيل-كلي": "^ 6. 26. 0"،"بابل-لويدر": "^ 7. 1. 2"،"بابيل-بريسيت-es2015": "^ 6. 24. 1"،"بابيل-بريسيت-es2017": "^ 6. 24. 1"،"بابيل-بريسيت-رياكت": "^ 6. 24. 1"،"بابيل-ريجيستر": "^ 6. 26. 0"،"كوزميكجس": "^ 2. 4. 0"،"فلوكس": "^ 3. 1. 3"،"هيستوري": "1. 13. 0"،"هوجان-إكسبريس": "^ 0 5. 5."،"هتمل-ويباك-بلوجين": "^ 2. 30. 1"،"باث": "^ 0. 12. 7"،"رياكت": "^ 15. 6. 1"،"رياكت-دوم": "^ 15. 6. 6."،"رياكت-روتر": "1. 0. 1"،"ويباك": "^ 3. 5. 6"،"ويباك-ديف-سيرفر": "^ 2. 7. 1"}،"سكريبتس": {"ويباك-ديف-سيرفر": "NODE_ENV = بورت بورت = 8080 ويباك-ديف-سيرفر --content-بيس عامة / --hot --inline --devtool إنلين-سورس-ماب --history-أبي-فالباك"هتمل && NODE_ENV = تطوير ويباك && نبم رن ويباك-ديف-سيرفر "}،"مؤلف": ""،"ليسنز": "إيسك"،"ديفيدبندنسيز": {"ريت-هوت-لويدر": "^ 1. 3. 0"}}    

في هذا الملف، ستلاحظ أننا أضفنا ما يلي:

  1. بابيل لحزم وحدات كومونجس لدينا وتحويل ES6 ورد فعل جسك في جافا سكريبت متوافق مع المتصفح
  2. العقدة الكونية جس العقدة. العميل جس لخدمة بسهولة محتوى بلوق لدينا من كوز جس جسيمة استضافة المحتوى أبي
  3. الجريان لإدارة البيانات التطبيق (وهو عنصر مهم جدا في تطبيق رد فعلنا). جس ملف.

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

الآن دعونا إعداد ملف التكوين ويباك لدينا عن طريق تحرير الملف ويباك. التكوين. جس :

   // ويباك. التكوين. شبيبةفار ويباك = ريكير ('ويباك')وحدة. الصادرات = {ديفتول: 'إيفال'،دخول: '. / التطبيق العميل. شبيبة،انتاج: {باث: __dirname + '/ بوبليك / ديست'،فلنام: 'الحزمة. شبيبة،بوبليكباث: '/ ديست /'}،وحدة: {لوادر: [{ اختبار: /\. جس $ /، لوادرس: 'بابيل-لويدر'، إكسليود: / node_modules /}،{ اختبار: /\. جسك $ /، لوادرس: 'بابيل-لويدر'، إكسليود: / node_modules /}]}،الإضافات: [جديد ويباك. DefinePlugin ({'معالجة. الحياة الفطرية. COSMIC_BUCKET ': جسون. سترينغيفي (بروسيس. إنف. COSMIC_BUCKET)،'معالجة. الحياة الفطرية. COSMIC_READ_KEY ': جسون. سترينغيفي (بروسيس. إنف. COSMIC_READ_KEY)،'معالجة. الحياة الفطرية. COSMIC_WRITE_KEY ': جسون. سترينغيفي (بروسيس. إنف. COSMIC_WRITE_KEY)})]}؛    

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

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

إنشاء مجلد يسمى مشاهدة وداخله فهرس. هتمل ملف. افتح ملف هتمل وأضف الشفرة التالية:

   <هتمل لانغ = "إن"><رئيس><ميتا تشارسيت = "أوتف-8"><ميتا هتب-إكيف = "X-وا-كومباتيبل" كونتنت = "إي = إدج"><ميتا نيم = "فيوبورت" كونتنت = "ويدث = ديفيس-ويدث، إنيتيال-سكيل = 1"><ميتا نيم = "دسكريبتيون" كونتنت = ""><ميتا نيم = "أوثر" كونتنت = ""><تيتل> {{سيت. تيتل}} {{# بادج}} | {{بادج. تيتل}} {{/ بادج}} <لينك هريف = "/ كس / بوتستراب. مين. كس" ريل = "ستايلشيت"><لينك هريف = "/ كس / كلين-بلوغ. مين. كس" ريل = "ستايلشيت"><لينك هريف = "/ كس / كوزميك-كوستوم. كس" ريل = "ستايلشيت"><لينك هريف = "// ماكسدن. بوتسترابسن. كوم / فونت-أويسوم / 4. 1. 0 / كس / فونت-أويسوم. مين. كس" ريل = "ستيلشيت" تايب = "تكست / كس"><لينك هريف = "// فونتس. غوغلابيس. كوم / كس؟ فاميلي = لورا: 400،700،400italic، 700italic" ريل = "ستايلشيت" تايب = "تكست / كس"><لينك هريف = "// فونتس. غوغلابيس. كوم / كس؟ فاميلي = أوبين + سانس: 300italic، 400italic، 600italic، 700italic، 800italic، 400،300،600،700،800" ريل = "ستايلشيت" تايب = "تكست / كس"><سكريبت سرك = "هتبس: // أوس. ماكسدن. كوم / ليبس / html5shiv / 3. 7. 0 / html5shiv. جس"> <سكريبت سرك = "هتبس: // أوس. ماكسدن. كوم / ليبس / ريسبوند. جس / 1. 4. 2 / ريسبوند. مين. جس"> <بودي كلاس = "هيدن"><ديف إد = "أب"> {{{رياكتماركوب}}}  
<سكريبت سرك = "/ جس / جكري. مين. جس"> <سكريبت سرك = "/ جس / بوتستراب. مين. جس"> <سكريبت سرك = "/ جس / كلين-بلوغ. مين. جس"> <سكريبت سرك = "/ ديست / باندل. انقر هنا لتحميل الملفات.

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

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

عند هذه النقطة، يجب أن يكون التطبيق الخاص بك البنية التالية:

   حزمة. سلمانعامة| -css| -bootstrap. دقيقة. المغلق| -cosmic حسب الطلب. المغلق| -js| -jquery. دقيقة. شبيبة| -bootstrap. دقيقة. شبيبة| التبديل- CLEAN-بلوق. دقيقة. شبيبةالآراء| -index. أتش تي أم ألwebpack. التكوين. شبيبة    

الآن لدينا قطع ثابتة لدينا القيام به، دعونا نبدأ بناء بعض مكونات رد الفعل.

لدينا بلوق مكونات التطبيق (مثال أساسي)

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

  1. الصفحة الرئيسية
  2. عن
  3. العمل
  4. اتصال

دعونا نبدأ من خلال إنشاء ملف يسمى التطبيق العميل. جس وإضافة المحتوى التالي إليها:

   // أب-كلينت. شبيبةاستيراد رد فعل من 'رد'استيراد {ريندر} من 'رياكت-دوم'إيمبورت {روتر} من 'رياكت-روتر'استيراد كريبروزرهيستوري من "التاريخ / ليب / كريتبروزرهيستوري"كونست هيستوري = كريتبروزرهيستوري   // الطرقطرق الاستيراد من '. / طرق "كونست روتس = (<سجل جهاز التوجيه = {هيستوري}>{روتس})كونست أب = دوكومنت. getElementById ( 'التطبيق')تقديم (الطرق، التطبيق)    

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

يضاف ما يلي إلى مسارا. جس فيل:

   // روتس. شبيبةإيمبورت رياكت، {كومبوننت} من 'رياكت'إيمبورت {روت، إندكسروت، لينك} من 'راكت-روتر'// المكون الرئيسيفئة التطبيق يمتد المكون {componentDidMount    {وثيقة. الجسم. اسم_الفئة = ''}يجعل  {إرجاع (

رد المدونة العالمية <الملاحة>
  • <لينك تو = "/"> الصفحة الرئيسية
  • <لينك تو = "/ أبوت"> حول
  • <لينك تو = "/ وورك"> العمل
  • <لينك تو = "/ كونتاكت"> الاتصال
  • { هذه. الدعائم. الآن، دعونا تشغيل التطبيق لدينا والتحقق من ذلك! في الجهاز الطرفي، قم بتشغيل الأوامر التالية:

         مكديرنبم تثبيتنبم تشغيل التنمية    

    ثم انتقل إلى هتب: // لوكالهوست: 8080 في المتصفح الخاص بك لرؤية بلوق الأساسي الخاص بك في العمل.

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

       // أب-سيرفر. شبيبةاستيراد رد فعل من 'رد'إيمبورت {ماتش، روتينغكونتيكست} فروم 'رياكت-روتر'استيراد رياكتدومزيرفر من 'رد فعل دوم / الخادم'استيراد صريحة من 'اكسبرس'استيراد هوجان من 'هوجان اكسبرس'// الطرقطرق الاستيراد من '. / طرق "// التعبيركونست أب = إكسبريس   التطبيق. إنجين ('هتمل'، هوجان)التطبيق. سيت ('فيوس'، __dirname + '/ فيوس')التطبيق. استخدم ('/'، إكسبريس. ثابت (__ ديرنام + '/ بوبليك /'))التطبيق. سيت ('بورت'، (بروسيس. إنف بورت || 3000))التطبيق. جيت ('*'، (ريق، ريس) => {ماتش ({روتس، لوكاتيون: ريق. ورل}، (إرور، ريديركتلوكاتيون، ريندربروبس) => {كونست رياكتاركوب = رياكتدومزيرفر. ريندتوستاتماركوب (<روتينغكونتيكست {.ريندروبروبس} />)احتياط السكان المحليين. ريتراكماركوب = رياكتماركوبإذا (خطأ) {احتياط الحالة (500). إرسال (رسالة خطأ)} إلس إف (ريديركتلوكاتيون) {احتياط إعادة التوجيه (302، إعادة توجيه الموقع. باثنام + ريديركت لوكاتيون.)} إلس إف (ريندربروبس) {// نجاح!احتياط الحالة (200). ريندر ('إندكس. هتمل')} إلس {احتياط الحالة (404). ريندر ('إندكس. هتمل')}})})التطبيق. الاستماع (التطبيق. جيت ('بورت'))وحدة التحكم. إنفو ('==> الخادم يستمع في' + عملية. إنف NODE_ENV + 'واسطة')وحدة التحكم. إنفو ('==> انتقل إلى هتب: // لوكالهوست:٪ s'، أب. جيت ('بورت'))    

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

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

    افتح الحزمة . جسون ملف وتحرير القسم النصي لتبدو كما يلي:

       // ."سكريبتس": {"ستارت": "نبم رون برودكتيون"،هتمل && NODE_ENV = إنتاج ويباك -p && NODE_ENV = إنتاج بابيل-عقدة أب-سيرفر. جس -presets es2015 "،" آرإم -rf بوبليك / إندكس."ويباك-ديف-سيرفر": "NODE_ENV = بورت بورت = 8080 ويباك-ديف-سيرفر --content-بيس عامة / --hot --inline --devtool إنلين-سورس-ماب --history-أبي-فالباك"هتمل && NODE_ENV = تطوير ويباك && نبم رن ويباك-ديف-سيرفر "}،// .    

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

         نبم البداية    

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

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

    الاستنتاجات

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

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

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

March 1, 2018