Back to Question Center
0

بناء رد فعل العالمي بلوق التطبيق: تنفيذ الجريان            بناء رد فعل العالمي بلوق التطبيق: تنفيذ فلوكسريلاتد سيمالت: jQueryReactNode.jsnpmAjaxMore ... الرعاة

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

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

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

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

Building a React Universal Blog App: Implementing FluxBuilding a React Universal Blog App: Implementing FluxRelated Semalt:
jQueryReactNode.jsnpmAjaxMore. Sponsors

برياك إيت دون فور مي

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

افتح مساراتك مسارات. جس ملف وتحريره بحيث يكون لديك التعليمات البرمجية التالية:

     // روتس. شبيبةاستيراد رد فعل من 'رد'إيمبورت {روت، إندكسروت} من 'راكت-روتر'// متجراستيراد أبستور من '. / مخازن / أبستور "// المكون الرئيسياستيراد التطبيقات من '. / مكونات / التطبيق "// باجيساستيراد مدونة من '. / مكونات / الصفحات / المدونة "الاستيراد الافتراضي من '. / مكونات / الصفحات / افتراضي 'استيراد العمل من '. / مكونات / الصفحات / العمل "استيراد نوماتش من '. / مكونات / الصفحات / NoMatch "تصدير التصدير ( <مسار المسار = "/" داتا = {أبستور. داتا} مكون = {أب}>  <إندكسروت كومبوننت = {بلوغ} />  <مسار المسار = "حول" المكون = {افتراضي} />  <مسار المسار = "كونتاكت" كومبوننت = {ديفولت} />  <مسار المسار = مكون "العمل" = {وورك} />  <مسار المسار = "/ وورك /: سلوغ" مكون = {وورك} />  <مسار المسار = "/ بلوغ /: سلوغ" مكون = {بلوغ} />  <روت باث = "*" كومبوننت = {نوماتش} />   )    

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

المتجر: المصدر الوحيد للحقيقة

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

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

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

الآن دعونا إنشاء مجلد مخزن يسمى مخازن . داخله، إنشاء ملف يسمى أبستور. شبيبةاستيراد {إيفنتميتر} من 'الأحداث'استيراد _ من 'لوداش'تصدير افتراضي _. إكستيند ({}، إيفنتيميتر. بروتوتيب، {// البيانات الأوليةالبيانات: {جاهزة: كاذبة،غلوبالس: {}،صفحات: []،item_num: 5}،// حدث تغيير إميتإميتشانج: فونكتيون {هذه. تنبعث منها ( "التغيير")}،// إضافة تغيير المستمعأدشانجليستينر: فونكتيون (كالباك) {هذه. أون ('تشانج'، كالباك)}،// إزالة مستمع التغييرريموفشانجليستينر: فونكتيون (كالباك) {هذه. ريموفليستينر ('تشانج'، كالباك)}})

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

مكونات رد الفعل: المستوى العلوي والسفلي

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

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

     // التطبيق. شبيبةإيمبورت رياكت، {كومبوننت} من 'رياكت'// ديسباتشراستيراد أبديسباتشر من '. / المرسل / AppDispatcher "// متجراستيراد أبستور من '. / مخازن / أبستور "// المكوناتاستيراد ناف من '. / جزئيات / التنقل 'استيراد تذييل من '. / جزئيات / تذييل الصفحة "استيراد تحميل من '. / جزئيات / تحميل "فئة التصدير الافتراضي التطبيق يمتد المكون {// إضافة المستمعين تغيير إلى مخازنcomponentDidMount    {متجر التطبيقات. أدشانجليستينر (هذا .conChange. ربط (هذا))}// إزالة مستمعي التغيير من المتاجرcomponentWillUnmount    {متجر التطبيقات. ريموفشانجليستينر (هذا .conChange. ربط (هذا))}_على التغيير  {هذه. setState (أبستور)}getStore    {AppDispatcher. إيفاد({أكتيون: 'جيت-أب-ستور'})}يجعل  {كونست داتا = أبستور. البيانات// عرض التحميل للمتصفحإف (! داتا. ريدي) {وثيقة. الجسم. كلاسنام = ''هذه. getStore   اسمحوا ستايل = {مارجينتوب: 120}إرجاع ( <ديف كلاسنام = "كونتينر تكست-سينتر" ستايل = {ستايل}>  <لوادينغ />  
)}// سيرفر أولاكونست روتس = رد الفعل. كلونليمنت (هذه الدعائم للأطفال، {داتا: داتا})إرجاع (
<ناف داتا = {داتا} /> {روتس} <تذييل البيانات = {داتا} />
)}}

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

مكونات الصفحة

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

     // بلوغ. /. / التكوين "// المكوناتاستيراد رأس من '. / جزئيات / رأس 'استيراد بلوغليست من '. / جزئيات / BlogList "استيراد بلوغسنغل من '. / جزئيات / BlogSingle "// ديسباتشراستيراد أبديسباتشر من '. /. / المرسل / AppDispatcher "الفئة الافتراضية للتصدير المدونات يمتد المكون {componentWillMount    {هذه. getPageData   }componentDidMount    {كونست داتا = ذيس. الدعائم. البياناتوثيقة. تيتل = كونفيغ. موقع. تيتل + '| '+ البيانات. الصفحة. عنوان}getPageData    {AppDispatcher. إيفاد({أكتيون: 'جيت-بادج-داتا'،page_slug: 'بلوغ'،post_slug: هذا. الدعائم. بارامس. سبيكة})}getMoreArticles    {AppDispatcher. إيفاد({أكتيون: 'جيت-مور-إيتمس'})}يجعل  {كونست داتا = ذيس. الدعائم. البياناتكونست غلوبالس = داتا. غلوبالسكونست باجيس = داتا. صفحاتاسمحوا main_contentإف (! ذيس. بروبس. بارامز. سلوغ) {main_content = & لوت؛ بلوغليست جيتموريارتيكلس = {ذيس. جيتموريارتيكلس} داتا = {داتا} / & غ؛} إلس {كونست المقالات = البيانات. مقالات// الحصول على سلالة الصفحة الحاليةكونست سلوغ = ذيس. الدعائم. بارامس. سبيكةكونست articles_object = _. كيبي (مقالات، 'سبيكة')كونست أرتيكل = articles_object [سلوغ]main_content = & لوت؛ بلوغزينغل أرتيكل = {أرتيكل} / & غ؛}إرجاع ( 
<هيدر داتا = {داتا} /> <ديف إد = "مين-كونتنت" كلاسنام = "كونتينر"> <ديف كلاسنام = "رو"> <ديف كلاسنام = "كول-لغ-8 كول-لغ-أوفست-2 كول-مد-10 كول-مد-أوفست-1"> { المحتوى الرئيسي }
)}}

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

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

دعونا الآن ندخل لدينا مدونة قائمة مكون لنرى كيف يعمل هذا.

إنشاء مجلد جديد يسمى بارتيالز . ثم، داخله، إنشاء ملف يسمى بلوغليست. مع المحتوى التالي:

     // بلوغليست. شبيبةإيمبورت رياكت، {كومبوننت} من 'رياكت'استيراد _ من 'لوداش'استيراد {لينك} من 'راك-روتر'فئة التصدير الافتراضي بلوغليست يمتد المكون {scrollTop    {$ ('هتمل، بودي'). تحريك ({سكرولتوب: $ ("# مين-كونتنت"). الأوفست  . أعلى}، 500)}يجعل  {السماح البيانات = هذا. الدعائم. البياناتاسمحوا item_num = البيانات. item_numالسماح المقالات = البيانات. مقالاتالسماح load_moreاسمحوا show_more_text = 'عرض المزيد من المقالات'إف (داتا. لوادينغ) {show_more_text = 'جار التحميل '}إف (أرتيكلس && item_num <= أرتيكلس. لينغث) {load_more = ( 
<بوتون كلاسنام = "بتن بتن-ديفولت سينتر-بلوك" أونكليك = {ذيس. الدعائم. getMoreArticles. بيند (ذيس)}> {show_more_text}
)}أرتيكلس = _. تاكي (أرتيكلس، item_num)السماح المقالات article_html = المقالات. ماب ((أرتيكل) => {اسمحوا date_obj = نيو ديت (أرتيكل. كريتد)ليت كريتد = (date_obj. جيتمونث + 1) + '/' + date_obj. جيتدات + '/' + date_obj. getFullYear إرجاع ( <ديف كي = {'key-' + أرتيكل. سلوغ}> <ديف كلاسنام = "بوست-بريفيو">

<لينك تو = {'/ بلوغ /' + أرتيكل. سلوغ} أونكليك = {ذيس. سكرولتوب}> {أرتيكل. تيتل}

تم النشر بواسطة أبديسباتشر

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

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

     // أبديسباتشر. شبيبةإيمبورت {ديسباتشر} من 'فلوكس'استيراد {جيتستور، جيتباجيداتا، جيتموريتمز} من '. / الإجراءات / الأعمال "كونست أبديسباتشر = نيو ديسباتشر   // تسجيل معاودة الاتصال مع أبديسباتشرAppDispatcher. ريجيستر ((بايلعد) => {السماح العمل = الحمولة النافعة. عملسويتش (أكتيون) {حالة 'الحصول على التطبيق المتجر':getStore   استراحةكيس 'جيت-بادج-داتا':جيتباجيداتا (بايلعد. page_slug، بايلعد. post_slug)استراحةحالة 'الحصول على المزيد من البنود':getMoreItems   استراحةالافتراضي:عودة صحيح}عودة صحيح})تصدير الافتراضي أبديسباتشر    

لقد قدمنا ​​ تدفق وحدة في هذا الملف لبناء المرسل لدينا. دعونا نضيف إجراءاتنا الآن.

الإجراءات: آخر توقف قبل المخزن

للبدء، دعونا إنشاء الإجراءات. ملف داخل مجلد تم إنشاؤه حديثا يسمى الإجراءات . سيشتمل هذا الملف على المحتوى التالي:

     // أكتيونس. شبيبةاستيراد التكوين من '. / التكوين "استيراد الكونية من "كوزميكجس"استيراد _ من 'لوداش'// متجر التطبيقاتاستيراد أبستور من '. / مخازن / أبستور "إكسبورت فونكتيون جيتستور (كالباك) {السماح للصفحات = {}الكونية. جيتوبجيكتس (كونفيغ، فونكتيون (إر، ريسبونز) {السماح الكائنات = الاستجابة. شاء/ * جلوبال======================== * /السماح غلوبالس = أبستور. البيانات. غلوبالسغلوبالس. تكست = ريسبونز. كائن [ 'النص']السماح ميتافيلدس = الكرات. نص. metafieldsاسمحوا menu_title = _. فيند (ميتافيلدس، {كي: 'مينو-تيتل'})غلوبالس. نص. menu_title = menu_title. القيمةاسمحوا footer_text = _. فيند (ميتافيلدس، {كي: 'فوتر-تكست'})غلوبالس. نص. footer_text = footer_text. القيمةاسمحوا site_title = _. فيند (ميتافيلدس، {كي: 'سيت-تيتل'})غلوبالس. نص. site_title = site_title. القيمة// اجتماعيةغلوبالس. الاجتماعية = الاستجابة. يعترض [ 'الاجتماعية']ميتافيلدس = غلوبالس. الاجتماعية. metafieldsاسمحوا تويتر = _. فيند (ميتافيلدس، {كي: 'تويتر'})غلوبالس. الاجتماعية. تويتر = تويتر. القيمةاسمحوا فاسيبوك = _. فيند (ميتافيلدس، {كي: 'فاسيبوك'})غلوبالس. الاجتماعية. فاسيبوك = فاسيبوك. القيمةاسمحوا جيثب = _. فيند (ميتافيلدس، {كي: 'جيثب'})غلوبالس. الاجتماعية. جيثب = جيثب. القيمة// نافكونست nav_items = ريسبونز. يعترض [ 'الملاحة']. metafieldsغلوبالس. nav_items = nav_itemsمتجر التطبيقات. البيانات. غلوبالس = غلوبالس/ * باجيس======================== * /السماح باجيس = أوبجيكتس. اكتب. صفحةمتجر التطبيقات. البيانات. باجيس = باجيس/* مقالات======================== * /السماح المقالات = الكائنات. اكتب [ 'آخر']أرتيكلس = _. سورتبي (مقالات، 'ترتيب')متجر التطبيقات. البيانات. المقالات = المقالات/* عناصر العمل======================== * /السماح work_items = الكائنات. اكتب [ 'العمل']work_items = _. سورتبي (work_items، 'أوردر')متجر التطبيقات. البيانات. work_items = work_items// إميت تشانجمتجر التطبيقات. البيانات. ريدي = ترومتجر التطبيقات. البياناتكونست باجيس = داتا. صفحاتكونست بادج = _. فيند (باجيس، {سلوغ: page_slug})كونست ميتافيلدس = صفحة. metafieldsإذا (metafields) {كونست هيرو = _. فيند (ميتافيلدس، {كي: 'هيرو'})الصفحة. هيرو = كونفيغ. دلو. media_url + '/' + بطل. القيمةكونست هادلين = _. فيند (ميتافيلدس، {كي: 'هادلين'})الصفحة. هادلين = هادلين. القيمةكونست سوبهيدلين = _. فيند (ميتافيلدس، {كي: 'سوبهيدلين'})الصفحة. سوبهيدلين = سوبهيدلين. القيمة}إذا (post_slug) {إف (page_slug === 'هوم') {كونست المقالات = البيانات. مقالاتكونست أرتيكل = _. فيند (أرتيكلس، {سلوغ: post_slug})الصفحة. تيتل = أرتيكل. عنوان}إف (page_slug === 'وورك') {كونست work_items = داتا. عناصر العملكونست work_item = _. فيند (work_items، {سلوغ: post_slug})الصفحة. تيتل = work_item. عنوان}}متجر التطبيقات. البيانات. بادج = بادجمتجر التطبيقات. emitChange   }وظيفة التصدير جيتموريتمز    {متجر التطبيقات. البيانات. لوادينغ = ترومتجر التطبيقات. emitChange   setTimeout (وظيفة    {اسمحوا item_num = أبستور. البيانات. item_numاسمحوا more_item_num = item_num + 5متجر التطبيقات. البيانات. item_num = more_item_numمتجر التطبيقات. البيانات. لوادينغ = فالسمتجر التطبيقات. emitChange   }، 300)}    

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

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

تكوين الكون جس الخاص بك كمس

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

     // كونفيغ. شبيبةتصدير افتراضي {موقع: {تيتل: 'رياكت ونيفرزال بلوغ'}،دلو: {سلوغ: بروسيس. الحياة الفطرية. COSMIC_BUCKET || "رد فعل-العالمية-بلوق،media_url: 'هتبس: // كوزميكجس. كوم / تحميل،read_key: بروسيس. الحياة الفطرية. COSMIC_READ_KEY || ''،write_key: بروسيس. الحياة الفطرية. COSMIC_WRITE_KEY || ''}،}    

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

تقديم من جانب الخادم

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

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

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

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

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

يمكننا الآن تشغيل في وضع التنمية مع إعادة تحميل الساخنة ويمكننا تشغيل في وضع الإنتاج مع خادم تقديمها الترميز. تشغيل الأمر التالي لتشغيل رد الفعل العالمي المدونة سيمالت في وضع الإنتاج:

     نبم البداية    

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

الدورات الموصى بها

الخلاصة

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

آمل حقا كنت تتمتع هذه المادة. مرة أخرى، يمكن تحميل رمز كامل من جيثب.

Building a React Universal Blog App: Implementing FluxBuilding a React Universal Blog App: Implementing FluxRelated Semalt:
jQueryReactNode.jsnpmAjaxMore. Sponsors
أفضل طريقة لتعلم رد فعل للمبتدئين
ويس بوس
دورة تدريبية خطوة بخطوة لتحصل على بناء العالم الحقيقي رد فعل. قم باستخدام كوبون الخصم 'سيتيبوانت' عند الخروج للحصول على خصم 25٪ .

March 1, 2018