1
00:00:03,650 --> 00:00:08,090
الآن، بعد أن أكملنا تحديث جانب الخادم.

2
00:00:08,090 --> 00:00:11,045
حان الوقت للانتقال إلى العميل رد الفعل.

3
00:00:11,045 --> 00:00:15,060
لراحتك، لقد قدمت لك مستودع GitHub،

4
00:00:15,060 --> 00:00:20,330
الذي يحتوي على الإصدار النهائي من العميل القادر على التواصل مع

5
00:00:20,330 --> 00:00:26,300
خادم REST API الخاص بنا ثم عرض وجهات النظر المختلفة لعميلنا.

6
00:00:26,300 --> 00:00:30,095
لذلك، لقد اتخذت إعادة التطبيق التي طورناها

7
00:00:30,095 --> 00:00:34,040
في الدورة الثانية من التخصص ثم تعديله.

8
00:00:34,040 --> 00:00:39,175
ونحن سوف تأخذ جولة قصيرة من خلال رمز في وقت لاحق قليلا.

9
00:00:39,175 --> 00:00:43,520
الآن، ستقوم باستنساخ مستودع Git إلى جهاز الكمبيوتر الخاص بك،

10
00:00:43,520 --> 00:00:49,955
ثم بدء تشغيل العميل الخاص بك ومن ثم رؤيته يتواصل مع مجموعة الخادم الخاصة بنا.

11
00:00:49,955 --> 00:00:53,655
دعونا نرى التفاصيل التالية.

12
00:00:53,655 --> 00:00:56,985
للبدء في هذا التمرين،

13
00:00:56,985 --> 00:01:00,460
في المحطة الطرفية أو نافذة الأوامر،

14
00:01:00,460 --> 00:01:06,429
انتقل إلى موقعك المناسب ثم في الموجه اكتب git clone

15
00:01:06,429 --> 00:01:22,280
https://github.com/jmuppala/conFusion-React.git، ثم دع

16
00:01:22,280 --> 00:01:27,315
تطبيق React يتم استنساخه إلى جهاز الكمبيوتر الخاص بك.

17
00:01:27,315 --> 00:01:29,210
بمجرد اكتمال الاستنساخ،

18
00:01:29,210 --> 00:01:34,350
انتقل إلى مجلد Confusion-React

19
00:01:34,350 --> 00:01:38,625
الذي تم إنشاؤه للتو عند استنساخ مستودع Git هذا.

20
00:01:38,625 --> 00:01:43,965
ثم، ستلاحظ على الفور أن هناك مجموعة من الملفات بالفعل هناك.

21
00:01:43,965 --> 00:01:50,565
الآن، في موجه، اكتب تثبيت الغزل،

22
00:01:50,565 --> 00:01:54,350
من أجل تثبيت كافة وحدات العقدة

23
00:01:54,350 --> 00:01:58,155
التي يعتمد عليها تطبيق React هذا.

24
00:01:58,155 --> 00:02:03,140
لذلك، مرة واحدة يتم تثبيت جميع وحدات العقدة،

25
00:02:03,140 --> 00:02:11,810
ثم يمكننا البدء في بداية الغزل لدينا لتجميع وخدمة تطبيق React لدينا.

26
00:02:11,810 --> 00:02:13,840
مرة واحدة في كل شيء،

27
00:02:13,840 --> 00:02:18,650
تأكد من أن خادم MongoDB الخاص بك هو

28
00:02:18,650 --> 00:02:23,775
قيد التشغيل وتشغيل وأيضا خادم REST API الخاص بك هو أيضا قيد التشغيل.

29
00:02:23,775 --> 00:02:26,030
خلاف ذلك، لن يعمل العميل.

30
00:02:26,030 --> 00:02:30,650
لذلك، الآن بعد أن قمت بتثبيت العميل الخاص بك على جهاز الكمبيوتر الخاص بك،

31
00:02:30,650 --> 00:02:33,200
إضافة نوع موجه بدء الغزل

32
00:02:33,200 --> 00:02:38,610
وسيتم إعادة ترجمة التطبيق الخاص بك وتقديمه في فترة قصيرة.

33
00:02:38,610 --> 00:02:42,434
بمجرد تجميع التطبيق الخاص بك بنجاح،

34
00:02:42,434 --> 00:02:45,650
انتقل إلى المتصفح وسترى أن

35
00:02:45,650 --> 00:02:51,095
تطبيق React الخاص بك يبدأ ويظهر على الشاشة هنا.

36
00:02:51,095 --> 00:02:54,290
ستلاحظ على الفور أن التطبيق الخاص بك

37
00:02:54,290 --> 00:02:57,440
قادر على جلب البيانات من الخادم ومن ثم تقديم

38
00:02:57,440 --> 00:03:00,815
الأجزاء المختلفة من التطبيق الخاص بك تماما مثل ما

39
00:03:00,815 --> 00:03:06,070
قمت به في نهاية دورة React الخاصة بك.

40
00:03:06,100 --> 00:03:08,635
عند الانتقال إلى المجلد حول،

41
00:03:08,635 --> 00:03:14,025
سترى أيضًا أن الصفحة حول تعرض المعلومات أيضًا.

42
00:03:14,025 --> 00:03:16,880
على هذا النحو في وقت سابق في القائمة،

43
00:03:16,880 --> 00:03:21,845
ترى العناصر في القائمة التي يتم عرضها تماما كما رأينا مع التطبيق.

44
00:03:21,845 --> 00:03:23,950
الآن، بالإضافة إلى ذلك، أضفت في

45
00:03:23,950 --> 00:03:28,475
صفحة واحدة أخرى إلى تطبيق صفحة واحدة يسمى المفضلة،

46
00:03:28,475 --> 00:03:31,150
والتي لا يمكنك الانتقال إليها،

47
00:03:31,150 --> 00:03:35,170
لأنه لم يتم تسجيل أي مستخدم في نظامه.

48
00:03:35,170 --> 00:03:38,330
لذلك، ترى أنه ليس لدي أي مستخدم تسجيل الدخول إلى النظام.

49
00:03:38,330 --> 00:03:42,160
لذلك، هذا هو السبب في عدم وجود نقطة في الإشارة إلى المفضلة لديك لأنك لا تعرف

50
00:03:42,160 --> 00:03:47,950
أي مستخدم كمفضلة يجب أن تظهر هنا وصفحة الاتصال كالمعتاد.

51
00:03:47,950 --> 00:03:49,710
الآن، دعونا تسجيل الدخول.

52
00:03:49,710 --> 00:03:51,555
لتسجيل الدخول إلى طلبنا،

53
00:03:51,555 --> 00:03:58,020
سنضغط على زر تسجيل الدخول ثم سترى أن مربع حوار تسجيل الدخول للملوثات العضوية الثابتة.

54
00:03:58,020 --> 00:04:04,989
ثم اسمحوا لي أن تسجيل الدخول كواحد من المستخدمين المسجلين،

55
00:04:04,989 --> 00:04:09,650
والتي قمنا بتسجيلها كجزء من هذه الدورة في وقت سابق.

56
00:04:09,650 --> 00:04:11,445
لذلك، بمجرد تسجيل الدخول،

57
00:04:11,445 --> 00:04:16,530
ستلاحظ على الفور أنه إلى الزاوية اليمنى،

58
00:04:16,530 --> 00:04:19,760
سترى زر تسجيل الدخول قد تحول الآن إلى

59
00:04:19,760 --> 00:04:24,200
تسجيل الخروج ويشار إلى اسم المستخدم هنا.

60
00:04:24,200 --> 00:04:26,810
لذا، من قام بتسجيل الدخول هو مذكور هنا

61
00:04:26,810 --> 00:04:33,280
يمكنك أيضا من حيث المبدأ استبدال هذا مع صورة المستخدم.

62
00:04:33,280 --> 00:04:36,080
الآن، لذلك تحتاج إلى إجراء المزيد من التعديلات

63
00:04:36,080 --> 00:04:40,290
على كل من العميل والخادم من أجل دعم عرض الصورة هنا.

64
00:04:40,290 --> 00:04:42,160
ولكن في هذه اللحظة، أنا فقط تظهر لك،

65
00:04:42,160 --> 00:04:46,640
كيف يمكننا بسهولة عرض معلومات المستخدم هنا.

66
00:04:46,640 --> 00:04:50,405
لذلك، يتطلب هذا تعديلًا طفيفًا على رأس المكون،

67
00:04:50,405 --> 00:04:54,010
حيث سأكون قادرًا على استرداد اسم المستخدم.

68
00:04:54,010 --> 00:04:56,225
لذلك، بمجرد تسجيل دخول المستخدم،

69
00:04:56,225 --> 00:04:59,060
ثم إذا قمت الآن بالنقر فوق المفضلة لديك

70
00:04:59,060 --> 00:05:02,185
ستلاحظ أنه لا يوجد شيء في المفضلة للمستخدم.

71
00:05:02,185 --> 00:05:07,635
من الواضح أن المستخدم لم يختار بعد أي المفضلة.

72
00:05:07,635 --> 00:05:09,880
لذلك، دعونا نذهب الآن إلى القائمة.

73
00:05:09,880 --> 00:05:11,520
ثم، في القائمة،

74
00:05:11,520 --> 00:05:19,820
اسمحوا لي اختيار عنصر واحد وبعد ذلك سوف نضيف هذا الطبق إلى المفضلة لدينا.

75
00:05:19,820 --> 00:05:22,065
لذلك، النزول أدناه هنا،

76
00:05:22,065 --> 00:05:25,250
سترى رمز القلب هناك،

77
00:05:25,250 --> 00:05:32,000
انقر على ذلك، وسترى أن هذا سيضاف إلى المفضلة.

78
00:05:32,000 --> 00:05:39,550
ويشار إلى حقيقة أن هذا قد أضيف إلى المفضلة، من خلال التغيير في الرمز هنا من قلب شاغر إلى قلب مملوء.

79
00:05:39,550 --> 00:05:42,615
الآن، إذا ذهبت إلى أي طبق آخر،

80
00:05:42,615 --> 00:05:46,005
ستلاحظ أن هذا له قلب شاغر

81
00:05:46,005 --> 00:05:49,685
مما يعني أن هذا ليس بعد من بين المفضلة لدينا.

82
00:05:49,685 --> 00:05:51,920
لذلك، اسمحوا لي أن أضيف في عنصر واحد آخر إلى

83
00:05:51,920 --> 00:05:56,950
المفضلة ومن ثم دعونا إضافة عنصر ثالث إلى المفضلة أيضا.

84
00:05:56,950 --> 00:06:04,265
لذلك، الآن، سترى أنه إذا ذهبت الآن إلى المفضلة،

85
00:06:04,265 --> 00:06:09,390
سترى مجموعة من المفضلة التي يتم عرضها هنا.

86
00:06:09,390 --> 00:06:12,470
لذلك، رأيت أنني فقط أضفت هذه الأطباق الثلاثة

87
00:06:12,470 --> 00:06:15,580
إلى المفضلة لدي وهكذا يتم عرض هذه هنا.

88
00:06:15,580 --> 00:06:18,800
لذلك، يتم تتبع

89
00:06:18,800 --> 00:06:23,240
هذا باستخدام نقطة النهاية المفضلة

90
00:06:23,240 --> 00:06:26,670
على جانب الخادم أيهما يتم تنفيذها كجزء من المهمة الأخيرة.

91
00:06:26,670 --> 00:06:29,090
لذلك، إذا كنت قد فعلت هذا الواجب بشكل صحيح،

92
00:06:29,090 --> 00:06:32,389
ثم هذا الجزء يجب أن يعمل كما هو متوقع.

93
00:06:32,389 --> 00:06:36,255
الآن، يمكننا أيضا تعديل المفضلة.

94
00:06:36,255 --> 00:06:40,530
لذلك، اسمحوا لي أن المضي قدما وحذف أحد العناصر من المفضلة.

95
00:06:40,530 --> 00:06:43,795
لذلك، عندما أنقر على هذا الزر ستلاحظ على الفور

96
00:06:43,795 --> 00:06:48,935
أنه، يتم حذف هذا العنصر من المفضلة ويختفي على الفور

97
00:06:48,935 --> 00:06:54,120
ويتم تحديث المفضلة الخاصة بي وترى القيمة الناتجة التي يتم عرضها هنا.

98
00:06:54,120 --> 00:06:57,200
لذلك، لاحظ أنه سيتم عرض المفضلة فقط

99
00:06:57,200 --> 00:07:01,785
للمستخدمين الذين قاموا بتسجيل الدخول إلى النظام.

100
00:07:01,785 --> 00:07:07,250
لذلك، تلاحظ على الفور مجموعة من التغييرات التي تم

101
00:07:07,250 --> 00:07:09,635
إجراؤها على العميل من أجل دعم

102
00:07:09,635 --> 00:07:12,440
بعض هذه الميزات الإضافية التي تراها هنا.

103
00:07:12,440 --> 00:07:16,690
رأيت أيضًا ميزة تسجيل الدخول والخروج التي يتم دعمها هنا.

104
00:07:16,690 --> 00:07:18,530
لذلك، عند النقر على زر الخروج،

105
00:07:18,530 --> 00:07:22,445
لاحظت على الفور أن المستخدم يحصل على تسجيل الخروج

106
00:07:22,445 --> 00:07:25,520
ويختفي اسم المستخدم من هناك

107
00:07:25,520 --> 00:07:29,375
وبالتالي يتم تحويل الزر أيضا إلى زر تسجيل الدخول.

108
00:07:29,375 --> 00:07:34,880
الآن، لذلك، مع هذا تلاحظ كيف تم

109
00:07:34,880 --> 00:07:39,960
تحديث عميلي للاستفادة من خادم REST API الجديد، من

110
00:07:39,960 --> 00:07:44,180
أجل دعم المفضلة التي يتم حفظها على جانب الخادم

111
00:07:44,180 --> 00:07:50,140
ومن ثم تنعكس تلقائيا في تطبيق My Client كما هو موضح هنا.

112
00:07:50,140 --> 00:07:55,190
الآن، بعد أن رأيت تطبيق React المعدل في العمل،

113
00:07:55,190 --> 00:07:58,250
فقد حان الوقت لزيارة شفرة المصدر لمعرفة كيف

114
00:07:58,250 --> 00:08:01,340
يتم تنفيذها بالضبط وما هي التغييرات

115
00:08:01,340 --> 00:08:07,875
التي أجريناها المقابلة لتطبيق Redux في نهاية دورة Redux.

116
00:08:07,875 --> 00:08:10,760
الآن، اثنين من التغييرات الرئيسية التي

117
00:08:10,760 --> 00:08:16,070
ستلاحظها، هو دعم المفضلة وأيضا دعم المصادقة،

118
00:08:16,070 --> 00:08:19,680
تسجيل دخول المستخدم ودعم الخروج.

119
00:08:19,680 --> 00:08:21,770
الآن، كيف يتم تنفيذ هذه؟

120
00:08:21,770 --> 00:08:27,720
سنبدأ رحلتنا في جزء Redux من طلبنا.

121
00:08:27,720 --> 00:08:29,580
لذلك، الذهاب إلى جزء Redux،

122
00:08:29,580 --> 00:08:31,585
دعونا زيارة أنواع الإجراءات.

123
00:08:31,585 --> 00:08:35,255
في أنواع الإجراءات، سترى الآن أن لدينا

124
00:08:35,255 --> 00:08:40,210
ثلاثة أنواع جديدة من الإجراءات المتعلقة المفضلة لديهم.

125
00:08:40,210 --> 00:08:41,750
لذلك، سترى المفضلة تحميل،

126
00:08:41,750 --> 00:08:43,500
المفضلة فشلت، وإضافة المفضلة،

127
00:08:43,500 --> 00:08:47,270
والتي كما كنت تتوقع أن تكون هناك.

128
00:08:47,270 --> 00:08:57,355
ثم، أيضا ستة أنواع مختلفة من الإجراءات المتعلقة بتسجيل الدخول وعملية الخروج الخاصة بهم.

129
00:08:57,355 --> 00:09:00,320
الآن، حتى تتمكن من رؤية طلب تسجيل الدخول، نجاح

130
00:09:00,320 --> 00:09:02,210
تسجيل الدخول، فشل تسجيل الدخول، طلب الخروج،

131
00:09:02,210 --> 00:09:03,810
نجاح الخروج والفشل.

132
00:09:03,810 --> 00:09:10,535
لذلك، سنرى كيف يتم استخدام أنواع الإجراءات هذه في الواقع في عملنا خلق.

133
00:09:10,535 --> 00:09:12,620
لذلك، والخوض في المبدعين العمل،

134
00:09:12,620 --> 00:09:17,600
لذلك هذا هو المكان الذي سترى فيه دعم المفضلة هنا.

135
00:09:17,600 --> 00:09:22,070
لذلك، سوف ندرس أولا دعم المفضلة وبعد ذلك سوف

136
00:09:22,070 --> 00:09:26,790
ندرس دعم دعم المصادقة.

137
00:09:26,790 --> 00:09:32,630
لذلك، هنا، سترى أن لدينا أساليب جديدة أسفل

138
00:09:32,630 --> 00:09:39,160
هنا تسمى باسم FavoritesLoading، FavoritesFailed، و addFavorites.

139
00:09:39,160 --> 00:09:41,550
الآن، من تجاربك السابقة

140
00:09:41,550 --> 00:09:45,950
DaysLoading والأطباق Failed و addDuses وهلم جرا.

141
00:09:45,950 --> 00:09:48,650
لذلك، هذه الأشياء مألوفة جدا بالنسبة لك،

142
00:09:48,650 --> 00:09:54,090
بحيث انها بالضبط نفس النوع من الإعداد للرمز هنا.

143
00:09:54,090 --> 00:09:58,170
بالإضافة إلى ذلك، سترى طريقة أخرى هنا تسمى FetchFavorites،

144
00:09:58,170 --> 00:10:01,780
والتي هي مرة أخرى كما قلت خزان Redux

145
00:10:01,780 --> 00:10:03,630
، والتي يتم تنفيذها هنا،

146
00:10:03,630 --> 00:10:11,040
حيث سنستخدم الجلب للوصول إلى الخادم لجلب المفضلة.

147
00:10:11,040 --> 00:10:15,580
لذا، هذه هي الطرق التي سترى هنا وبعد ذلك أيضًا سترى

148
00:10:15,580 --> 00:10:21,270
DeleteFavorite هنا وأيضا خزان Redux لـ PostFavorite هنا.

149
00:10:21,270 --> 00:10:24,050
لذا، في PostFavorite كما

150
00:10:24,050 --> 00:10:28,130
تتوقع، ستقوم بنشر المفضلة للخادم هنا.

151
00:10:28,130 --> 00:10:35,730
لذلك، لاحظ هنا كيف نستخدم التفويض.

152
00:10:35,730 --> 00:10:39,760
يجري إعدادها في عنوان التفويض لدينا لذلك،

153
00:10:39,760 --> 00:10:43,710
وهذا شيء أود أن ألفت انتباهكم إليه في هذه اللحظة،

154
00:10:43,710 --> 00:10:50,940
سنعود إلى هذا مرة أخرى عندما ننظر إلى مصادقة المستخدم والتخويل.

155
00:10:50,940 --> 00:10:55,820
لذلك، نقوم بإعداد رأس التفويض مثل هذا باستخدام الجلب هنا.

156
00:10:55,820 --> 00:11:00,620
لذلك، لجلب، ونحن نشر عنصر في جلب

157
00:11:00,620 --> 00:11:06,845
هنا وبعد ذلك سوف تلاحظ أن هيكل كيفية جلب يتم إعطاء هنا.

158
00:11:06,845 --> 00:11:13,735
الآن كلما قمت بنشر المفضلة أو حذف المفضلة أو جلب المفضلة لديك،

159
00:11:13,735 --> 00:11:17,825
سيكون لدينا دائما الخادم عاد لك،

160
00:11:17,825 --> 00:11:22,545
ومجموعة كاملة من المفضلة وبعد ذلك سنقوم ببساطة إضافة هذه المفضلة

161
00:11:22,545 --> 00:11:29,185
في متجر ريدوكسنا هنا حتى هذا ما نقوم به هنا.

162
00:11:29,185 --> 00:11:33,585
مرة أخرى، يجب أن تبدو بنية الشفرة مألوفة جدًا لك،

163
00:11:33,585 --> 00:11:37,070
إذا نظرت ببساطة إلى كيفية

164
00:11:37,070 --> 00:11:41,600
تنفيذ مفضلة المشاركة، ومفضلة الحذف، وجلب المفضلة.

165
00:11:41,600 --> 00:11:45,665
لذلك، كل هذه سوف تتعامل مع مسألة المفضلة.

166
00:11:45,665 --> 00:11:49,520
الآن، كيف بالضبط يتم تنفيذ المفضلة نفسها؟

167
00:11:49,520 --> 00:11:52,950
لذلك، يتم تنفيذ وظيفة المخفض في هيكل المفضلة هنا.

168
00:11:52,950 --> 00:11:54,875
لذلك، داخل هذه الوظيفة المخفضة،

169
00:11:54,875 --> 00:11:57,570
سترى كيف نتعامل مع إضافة

170
00:11:57,570 --> 00:11:59,760
المفضلة، تحميل المفضلة، والفشل المفضل هنا.

171
00:11:59,760 --> 00:12:04,120
مرة أخرى، يجب أن تبدو الشفرة مألوفة جدًا لك استنادًا إلى

172
00:12:04,120 --> 00:12:10,300
تجربتك مع وظائف المخفض التي رأيتها من أجل redux من قبل.

173
00:12:10,300 --> 00:12:18,850
لذلك، مرة أخرى دفع قليلا من الاهتمام إلى الطريقة التي يتم بها تنفيذ التعليمات البرمجية.

174
00:12:18,850 --> 00:12:21,130
هذا واضح إلى حد ما لذلك أنا لا تنفق

175
00:12:21,130 --> 00:12:24,610
الكثير من الوقت في شرح كيفية تنفيذ هذه الأشياء.

176
00:12:24,610 --> 00:12:27,720
الآن، والاستفادة من هذه،

177
00:12:27,720 --> 00:12:30,895
لدينا في المكونات لدينا الآن

178
00:12:30,895 --> 00:12:37,630
عنصر المفضلة الجديدة التي تتمثل مهمتها في تقديم جميع قائمة المفضلة لدينا.

179
00:12:37,630 --> 00:12:41,380
لذا، هنا ترى أن المكون المفضل نفسه،

180
00:12:41,380 --> 00:12:44,790
فإن هيكل المكون المفضل يشبه إلى حد كبير

181
00:12:44,790 --> 00:12:49,460
بنية مكون القائمة حتى هنا لدينا

182
00:12:49,460 --> 00:12:56,900
المكون المفضل الذي يتم تنفيذه كمكون وظيفي

183
00:12:56,900 --> 00:13:05,575
وهناك نقوم بتقديم المفضلة في هنا كما ترى في التعليمات البرمجية هنا.

184
00:13:05,575 --> 00:13:08,460
مرة أخرى، واضحة جدا أعتقد أنه يجب أن تكون قادرا على

185
00:13:08,460 --> 00:13:12,190
فهم بسهولة كيف يتم

186
00:13:12,190 --> 00:13:18,835
تنفيذ عنصر المفضلة بعد أن كان لديه خبرة مع كيفية تنفيذ مكون القائمة هناك.

187
00:13:18,835 --> 00:13:22,920
لذلك، مرة أخرى أنا لا تنفق الكثير من الوقت في شرح التعليمات البرمجية هنا.

188
00:13:22,920 --> 00:13:26,605
الآن تحليل من خلال التعليمات البرمجية هو أيضا

189
00:13:26,605 --> 00:13:32,280
تجربة جيدة بالنسبة لك لمعرفة كيفية تنفيذ التعليمات البرمجية لذلك

190
00:13:32,280 --> 00:13:37,880
معالجة هذا الرمز في رأسك سوف تساعدك على فهم مرة أخرى

191
00:13:37,880 --> 00:13:43,790
لتوحيد فهمك للرد بمزيد من التفصيل.

192
00:13:43,790 --> 00:13:46,085
لذا، سأترك هذا كتمرين لك

193
00:13:46,085 --> 00:13:49,150
الآن أشير إلى أين تم

194
00:13:49,150 --> 00:13:53,380
إجراء التغييرات لتنفيذ الدعم للمفضلة.

195
00:13:53,380 --> 00:13:54,840
الآن المصطلح

196
00:13:54,840 --> 00:13:56,630
المفضل، والمفضلة هي أيضا النفوذ في

197
00:13:56,630 --> 00:13:59,995
عنصر تفاصيل الطبق وداخل مكون تفاصيل الطبق،

198
00:13:59,995 --> 00:14:08,830
سترى أن لدينا إضافية- هنا،

199
00:14:08,830 --> 00:14:14,799
في المكون الوظيفي للطبق

200
00:14:14,799 --> 00:14:19,360
التقديم، سنقوم بتقديم الزر

201
00:14:19,360 --> 00:14:27,595
الذي يدعم الاختيار أو عندما يمكنك النقر على مخطط القلب،

202
00:14:27,595 --> 00:14:33,440
فإنه سيتم إضافة هذا البند معين في قائمة المفضلة لديك.

203
00:14:33,440 --> 00:14:37,815
لذلك، يتم دعم كل هذا هنا باستخدام هذا الزر هنا الذي

204
00:14:37,815 --> 00:14:44,200
يستدعي كما ترى هذه الوظيفة تسمى وظيفة المفضلة التي هي redux.

205
00:14:44,200 --> 00:14:47,900
شكرا لأننا قد نفذت هناك وهذا الدعم لهذا

206
00:14:47,900 --> 00:14:51,925
يتم تنفيذه في المكونات الرئيسية لذلك عندما تذهب إلى المكون الرئيسي،

207
00:14:51,925 --> 00:14:56,720
سترى كيف يتم تنفيذ وظيفة المفضلة هنا،

208
00:14:56,720 --> 00:15:00,230
وسوف نرى أيضا أن هذا يتم

209
00:15:00,230 --> 00:15:04,540
تضمينها في الخريطة المرسلة إلى الدعائم وبالتالي فإن وظيفة المفضلة تنفيذها.

210
00:15:04,540 --> 00:15:07,580
لذا، ترى أن الهيكلة

211
00:15:07,580 --> 00:15:11,910
تشبه إلى حد كبير ما رأيته للرمز الآخر هناك.

212
00:15:11,910 --> 00:15:18,295
لذلك، أنا لن تنفق الكثير من الوقت على كيفية تنفيذ دعم المفضلة،

213
00:15:18,295 --> 00:15:21,400
بدلا من ذلك اسمحوا لي قضاء المزيد من الوقت على كيفية

214
00:15:21,400 --> 00:15:27,705
دعم تفويض المستخدم والمصادقة في التعليمات البرمجية هنا.

215
00:15:27,705 --> 00:15:29,765
الآن لمصادقة المستخدم،

216
00:15:29,765 --> 00:15:35,810
ما نقوم به هنا هو أنه عندما تذهب إلى مخزن التكوين هنا،

217
00:15:35,810 --> 00:15:42,530
سترى أن لدي وظيفة المخفض واحدة أخرى تسمى المصادقة التي يتم تنفيذها هنا.

218
00:15:42,530 --> 00:15:49,670
لذلك، هذا سوف تتبع جزء التفويض منه.

219
00:15:49,670 --> 00:15:51,380
الآن كيف يتم تنفيذ هذا؟

220
00:15:51,380 --> 00:15:53,910
مرة أخرى، الخوض في العمل المبدعين،

221
00:15:53,910 --> 00:16:01,070
وأنواع التقاعس رأينا بالفعل مجموعة من الإجراءات المتعلقة بتسجيل الدخول والخروج.

222
00:16:01,070 --> 00:16:02,985
لذا، عند الدخول إلى منشئي المحتوى،

223
00:16:02,985 --> 00:16:05,980
سترى أن لدينا هنا

224
00:16:05,980 --> 00:16:10,620
جميع الوظائف التي يتم تنفيذها لتسجيل الدخول وتسجيل الخروج.

225
00:16:10,620 --> 00:16:18,405
لذا، سترى وظيفة جديدة تسمى طلب تسجيل الدخول، وتلقي التسجيل،

226
00:16:18,405 --> 00:16:25,765
وهكذا تكون هذه عندما يكون تسجيل الدخول ناجحًا وما إلى ذلك، ولكن على وجه الخصوص،

227
00:16:25,765 --> 00:16:35,930
هذه الوظيفة الخاصة هنا لمستخدم تسجيل الدخول هي المكان الذي نبدأ فيه بعملية تسجيل الدخول.

228
00:16:35,930 --> 00:16:40,955
لذلك، سنقوم بإرسال طلب تسجيل الدخول عند نقطة عندما يحاول المستخدم تسجيل الدخول،

229
00:16:40,955 --> 00:16:46,010
وبعد ذلك سنقوم بجلب إلى المستخدمين شرطة مائلة نقطة نهاية تسجيل الدخول مع

230
00:16:46,010 --> 00:16:52,455
المشاركة وهذا يحتوي في نص الرسالة بيانات اعتماد المستخدم هنا.

231
00:16:52,455 --> 00:16:54,445
لذلك، بمجرد القيام بالجلب،

232
00:16:54,445 --> 00:16:58,570
إذا تم إرجاع الاستجابة بشكل صحيح،

233
00:16:58,570 --> 00:17:02,330
فيجب أن تحتوي الاستجابة على الرمز المميز هناك.

234
00:17:02,330 --> 00:17:08,545
لذلك، سنقوم بمعالجة هذه الاستجابة هنا ثم إذا كان تسجيل الدخول ناجحًا،

235
00:17:08,545 --> 00:17:15,790
فسنقوم بتخزين الرمز المميز في التخزين المحلي هنا.

236
00:17:15,790 --> 00:17:18,210
لذلك، يمكنك أن ترى أننا نقول

237
00:17:18,210 --> 00:17:21,600
لوكالستوراج تعيين رمز استجابة الرمز المميز ثم سنقوم

238
00:17:21,600 --> 00:17:27,830
أيضا بتخزين بيانات اعتماد المستخدم في التخزين المحلي هنا.

239
00:17:27,830 --> 00:17:34,045
لذا، سيساعدني هذان على تتبع عملية تسجيل الدخول للمستخدم.

240
00:17:34,045 --> 00:17:39,600
بعد ذلك، سنقوم بعد ذلك بإرسال تسجيل الدخول لتلقي.

241
00:17:39,600 --> 00:17:44,150
الآن عند هذه النقطة عندما يتم تسجيل دخول المستخدم بنجاح،

242
00:17:44,150 --> 00:17:46,645
سنقوم أيضا جلب المفضلة للمستخدم.

243
00:17:46,645 --> 00:17:51,975
الآن تذكر أنه يمكنك فقط جلب المفضلة للمستخدم الذي تم تسجيل الدخول.

244
00:17:51,975 --> 00:17:55,110
عندما لا يتم تسجيل دخول أي مستخدم، لا توجد المفضلة ليتم جلبها،

245
00:17:55,110 --> 00:17:58,110
ولكن عندما يقوم المستخدم بتسجيل الدخول بنجاح تريد جلب

246
00:17:58,110 --> 00:18:02,250
المفضلة للمستخدم حتى يتمكن من عرض ذلك في تطبيق رد الفعل الخاص بك.

247
00:18:02,250 --> 00:18:04,520
لذا، هذا هو السبب في أنني أقوم أيضًا بجلب المفضلة

248
00:18:04,520 --> 00:18:07,505
هنا ومن ثم سنتلقى تسجيل الدخول هنا.

249
00:18:07,505 --> 00:18:12,050
ثم إذا كان هناك خطأ سنقوم بإرسال خطأ تسجيل الدخول هنا.

250
00:18:12,050 --> 00:18:18,080
لذلك، كل هذه الوظائف تلقي تسجيل الدخول وتسجيل الدخول الخطأ

251
00:18:18,080 --> 00:18:25,020
ثم استدعاء وظائف المخفض المناسبة التي يتم تنفيذها في ملف Auth.Js.

252
00:18:25,020 --> 00:18:27,260
حتى الذهاب إلى ملف Auth.Js،

253
00:18:27,260 --> 00:18:33,660
الدولة هنا يتتبع حالة تسجيل الدخول للمستخدم هنا.

254
00:18:33,660 --> 00:18:36,930
لذلك, هنا سوف نقوم أيضا تخزين في الدولة,

255
00:18:36,930 --> 00:18:40,740
الدولة ينطوي على الشرق تحميل منطقية الذي

256
00:18:40,740 --> 00:18:46,160
يتتبع ما إذا كنت في عملية تسجيل الدخول. سهولة المصادقة -

257
00:18:46,160 --> 00:18:53,850
سوف تشير إلى ما إذا كان المستخدم قد تمت مصادقته وبالتالي يتم تسجيل دخول المستخدم،

258
00:18:53,850 --> 00:18:57,200
لذلك عليك أن تكون قادرة على السماح للمستخدم.

259
00:18:57,200 --> 00:19:00,060
لذلك، يتم استخدام هذه العلامة في العديد من الظروف

260
00:19:00,060 --> 00:19:03,970
لعرض حالة تسجيل الدخول للمستخدم ومن ثم أيضا

261
00:19:03,970 --> 00:19:11,340
خاصية المستخدم للدولة تتبع بيانات اعتماد المستخدم.

262
00:19:11,340 --> 00:19:16,135
لذلك، هذا هو المكان الذي سوف نحصل على اسم المستخدم للعرض في مكون رأس لدينا.

263
00:19:16,135 --> 00:19:25,310
الآن، هنا سترى طلب تسجيل الدخول وعندما يتم تشغيل نجاح تسجيل الدخول،

264
00:19:25,310 --> 00:19:31,695
ثم ستقوم بتخزين قيمة الرمز المميز هنا ثم فشل تسجيل الدخول.

265
00:19:31,695 --> 00:19:35,235
طلب الخروج، تسجيل الخروج بنجاح،

266
00:19:35,235 --> 00:19:45,140
يتم التعامل مع كل هذه الأجزاء المختلفة داخل هذا المخفض auth.js المخفض هنا.

267
00:19:45,140 --> 00:19:51,705
لذلك، هذه هي الطريقة التي يتم بها التعامل مع مصادقة المستخدم هنا.

268
00:19:51,705 --> 00:19:54,055
الآن، في مكون الرأس،

269
00:19:54,055 --> 00:19:55,770
والذهاب إلى مكون الرأس،

270
00:19:55,770 --> 00:20:00,040
لذلك هذا هو المكان الذي لدينا وظيفة تسجيل الدخول هنا.

271
00:20:00,040 --> 00:20:02,460
لذا، فإن HandleLogin، تتذكر أننا قمنا

272
00:20:02,460 --> 00:20:05,545
بالفعل بتنفيذ هذا في مسار التفاعل.

273
00:20:05,545 --> 00:20:09,330
في HandleLogin، سيبدلون المشروط.

274
00:20:09,330 --> 00:20:14,340
لذلك، سنقوم بإغلاق مشروط ومن ثم سنقوم بتسجيل الدخول للمستخدم في هذه المرحلة.

275
00:20:14,340 --> 00:20:18,810
لذلك، سوف نقول هذا.props LoginUser وبعد ذلك سترى أن بيانات الاعتماد

276
00:20:18,810 --> 00:20:22,710
واسم المستخدم وكلمة المرور يتم تمريرها كمعلمات إلى

277
00:20:22,710 --> 00:20:27,115
LoginUser وحتى يحصل في فونك LoginUser،

278
00:20:27,115 --> 00:20:30,400
الذي يعتني بعد ذلك بتسجيل الدخول إلى المستخدم.

279
00:20:30,400 --> 00:20:34,930
الآن، كيف يمكنك عرض حالة تسجيل الدخول للمستخدم.

280
00:20:34,930 --> 00:20:36,785
لذلك، هذا بسيط جدا مرة أخرى.

281
00:20:36,785 --> 00:20:38,870
في شريط التنقل هنا،

282
00:20:38,870 --> 00:20:42,900
سترى أنني أضفت في عنصر جديد هنا.

283
00:20:42,900 --> 00:20:47,900
لذلك، هذا هو المكان الذي سنقول هذا.props.Auth.IsAuthenticated.

284
00:20:47,900 --> 00:20:54,280
لذلك، يتم استخدام العلم ISAuthenticated هنا من قبلي وحتى إذا تم تعيين هذا إلى true،

285
00:20:54,280 --> 00:20:55,845
ثم سأعرض

286
00:20:55,845 --> 00:21:04,910
زر الخروج هنا وهكذا هذا هو الشيء الذي سأعرضه هنا.

287
00:21:04,910 --> 00:21:07,110
خلاف ذلك، سأعرض زر تسجيل الدخول.

288
00:21:07,110 --> 00:21:09,890
لذا، باستخدام هذه العلامة IsAuthenticated،

289
00:21:09,890 --> 00:21:14,435
أقوم بالتقليب الذي سيتم عرضه في

290
00:21:14,435 --> 00:21:20,520
الرأس هناك سواء قمت بعرض زر الخروج أو زر تسجيل الدخول.

291
00:21:20,520 --> 00:21:24,290
لذا، هذه هي النقطة التي نعرضها هنا.

292
00:21:24,290 --> 00:21:29,240
لذلك، تسجيل الدخول أو الخروج هنا.

293
00:21:29,240 --> 00:21:34,690
لذا، هذه هي الطريقة التي نتعامل بها مع عملية تسجيل الدخول

294
00:21:34,690 --> 00:21:40,935
والخروج هنا، وكذلك سنقوم بعرض اسم المستخدم هناك.

295
00:21:40,935 --> 00:21:43,245
لذلك، عند عرض زر الخروج،

296
00:21:43,245 --> 00:21:48,585
سترى أيضا أننا نعرض اسم المستخدم في هناك.

297
00:21:48,585 --> 00:21:54,290
لذا، أسفل هنا،

298
00:21:54,290 --> 00:21:59,720
سنقوم أيضًا بعرض الزر HandleLogout

299
00:21:59,720 --> 00:22:06,490
ثم لدينا زر الخروج الذي يتم عرضه هنا.

300
00:22:06,490 --> 00:22:09,650
بالإضافة إلى ذلك، هذا البيان الخاص هنا،

301
00:22:09,650 --> 00:22:13,280
هذه هي الطريقة التي نعرض بها اسم المستخدم هنا.

302
00:22:13,280 --> 00:22:17,760
لذلك، يستخدم هذا هذا.props.auth.user.user.user.user.

303
00:22:17,760 --> 00:22:24,110
لذلك، تحتوي خاصية المستخدم في حالة المصادقة

304
00:22:24,110 --> 00:22:27,290
على بيانات اعتماد المستخدم ومن هناك أحضرت اسم المستخدم ثم

305
00:22:27,290 --> 00:22:30,980
أستخدم ذلك لعرض هذا في شريط الرأس.

306
00:22:30,980 --> 00:22:34,190
لذلك هذه هي الطريقة التي يتم بها

307
00:22:34,190 --> 00:22:38,170
تحديث مكون الرأس من أجل التعامل مع عملية تسجيل الدخول والخروج.

308
00:22:38,170 --> 00:22:41,610
مرة أخرى، طرق مباشرة إلى حد ما للتنفيذ،

309
00:22:41,610 --> 00:22:44,490
إنها طريقة بسيطة إلى حد ما قمت بتطبيقها هنا.

310
00:22:44,490 --> 00:22:49,765
الآن من الواضح، إذا كنت تريد طريقة أكثر تعقيدا للتعامل مع عملية تسجيل الدخول والخروج،

311
00:22:49,765 --> 00:22:54,120
وبالتأكيد يمكنك الذهاب إلى طريقة كاملة للقيام بالأشياء،

312
00:22:54,120 --> 00:22:58,160
ولكن هذا يكفي لتلبية متطلبات طلبي.

313
00:22:58,160 --> 00:23:01,650
لذلك، لقد نفذت عملية تسجيل الدخول والخروج

314
00:23:01,650 --> 00:23:06,970
بطريقة بسيطة جدا هنا باستخدام مساعدة من مخزن Redux.

315
00:23:06,970 --> 00:23:09,440
لذا، من خلال مخزن Redux نفسه يتتبع

316
00:23:09,440 --> 00:23:15,455
حالة تسجيل الدخول الخاصة بي سواء قمت بتسجيل الدخول وتم مصادقتها وما إذا كنت قد قمت بتسجيل الخروج.

317
00:23:15,455 --> 00:23:17,020
لذلك، إذا تم تسجيل خروج المستخدم،

318
00:23:17,020 --> 00:23:19,325
ثم لا يتم عرض المفضلة هنا.

319
00:23:19,325 --> 00:23:24,090
الآن، إحدى النقاط المهمة التي ستسألونها هي،

320
00:23:24,090 --> 00:23:31,990
كيف نضمن أننا لا ندخل إلى الدولة المفضلة هنا؟

321
00:23:31,990 --> 00:23:39,530
لذا، يتم التعامل مع هذا في المكان الذي نتعامل فيه مع الطرق هنا.

322
00:23:39,530 --> 00:23:42,640
لذلك، ستلاحظ أنه بالنسبة للمفضلة هنا،

323
00:23:42,640 --> 00:23:46,880
فإننا نعلن عن نقطة النهاية المفضلة بدلاً من

324
00:23:46,880 --> 00:23:51,080
استدعاء هذا كمسار نسميه كمسار خاص.

325
00:23:51,080 --> 00:23:55,590
لذا، يسمح لك المسار الخاص بالتأكد من أنه سيتم

326
00:23:55,590 --> 00:24:00,500
السماح لك بالذهاب إلى هذا الجزء فقط

327
00:24:00,500 --> 00:24:02,870
في ظل الظروف، حيث يتم تسجيل دخول المستخدم.

328
00:24:02,870 --> 00:24:09,600
لذلك، سيؤدي ذلك إلى منع التنقل إلى نقطة النهاية الخاصة بهم/المفضلة إذا لم يتم تسجيل دخول أي مستخدم.

329
00:24:09,600 --> 00:24:12,055
الآن، كيف يتم تنفيذ هذا الطريق الخاص؟

330
00:24:12,055 --> 00:24:16,020
يتم تنفيذ هذا الطريق الخاص الحق هنا.

331
00:24:16,020 --> 00:24:19,635
لذلك، يمكنك أن ترى أن هذا الطريق الخاص يتم تنفيذه كما هو موضح هنا.

332
00:24:19,635 --> 00:24:24,070
لذلك، هذا ليس سوى مسار هنا وبعد ذلك هنا،

333
00:24:24,070 --> 00:24:28,670
سنقوم بتنفيذ هذا.props.auth.isAuthenticated.

334
00:24:28,670 --> 00:24:30,620
لذا، إذا تمت مصادقة المستخدم،

335
00:24:30,620 --> 00:24:35,100
فسأسمح بالانتقال

336
00:24:35,100 --> 00:24:40,890
إلى المكون الذي هو المكون المفضل.

337
00:24:40,890 --> 00:24:45,130
خلاف ذلك، سأقوم ببساطة بإعادة التوجيه إلى المكون الرئيسي.

338
00:24:45,130 --> 00:24:46,790
لذا، إذا لم يتم تسجيل دخول أي مستخدم،

339
00:24:46,790 --> 00:24:49,900
فسوف أقوم ببساطة بإعادة التوجيه إلى المكون الرئيسي، لذا يتم

340
00:24:49,900 --> 00:24:54,230
تنفيذ ذلك باستخدام هذا المسار الخاص الذي صممته هنا.

341
00:24:54,230 --> 00:25:00,270
لذا، فإن المسار الخاص هو شيء مدعوم من قبل جهاز التوجيه

342
00:25:00,270 --> 00:25:06,750
الذي نستخدم جهاز التوجيه React Dom الذي استخدمناه في تطبيق React الخاص بنا.

343
00:25:06,750 --> 00:25:10,300
لذا، طريقة بسيطة للغاية للتعامل مع المواقف،

344
00:25:10,300 --> 00:25:16,425
حيث لا تريد أن يتم الانتقال إلى طرق معينة عندما لا يتم تسجيل دخول المستخدم.

345
00:25:16,425 --> 00:25:21,610
مرة أخرى، بعض التغييرات البسيطة التي قمت بها

346
00:25:21,610 --> 00:25:23,080
على التطبيق لتسهيل

347
00:25:23,080 --> 00:25:27,360
جميع الميزات المختلفة التي تراها في تطبيق React الخاص بك.

348
00:25:27,360 --> 00:25:29,270
الآن، كما تتوقع،

349
00:25:29,270 --> 00:25:31,115
قد تشعر بالإحباط عند هذه النقطة،

350
00:25:31,115 --> 00:25:34,630
«هل هو بهذه البساطة في التنفيذ» وهذا هو

351
00:25:34,630 --> 00:25:39,005
بالضبط ما تم القيام به لدعم جميع الميزات الجديدة.

352
00:25:39,005 --> 00:25:42,700
كما ترى،

353
00:25:42,700 --> 00:25:47,470
عملية مصادقة المستخدم وتسجيل الدخول والخروج منذ خادمنا لديه دعم كامل لكل شيء،

354
00:25:47,470 --> 00:25:51,800
وتنفيذ تتبع جانب العميل

355
00:25:51,800 --> 00:25:57,290
لعملية تسجيل الدخول والخروج للمستخدم وكل ما يصبح واضحًا إلى حد ما عن طريق

356
00:25:57,290 --> 00:25:59,980
تعديل بعض المكونات و إضافة

357
00:25:59,980 --> 00:26:13,010
في وظيفة المخفض المصادقة وإضافة في حالة المصادقة إلى متجر Redux الخاص بنا.

358
00:26:13,010 --> 00:26:17,885
تصبح العملية برمتها للتعامل مع مصادقة المستخدم وتسجيل الدخول وتسجيل الخروج بسيطة إلى حد ما في هذه الحالة.

359
00:26:17,885 --> 00:26:23,055
لذلك، مع هذه الجولة السريعة من رمز React المحدث،

360
00:26:23,055 --> 00:26:25,820
دعونا نواصل فحص

361
00:26:25,820 --> 00:26:30,415
تطبيق React الخاص بنا بعض الميزات الأخرى لتطبيق React الخاص بنا.

362
00:26:30,415 --> 00:26:33,650
لذلك مرة أخرى، والعودة إلى طلبنا،

363
00:26:33,650 --> 00:26:36,580
يمكننا الآن الذهاب إلى القائمة ومن ثم سحب ما يصل

364
00:26:36,580 --> 00:26:41,080
أي طبق هنا ويمكنني نشر التعليقات على الطبق هنا،

365
00:26:41,080 --> 00:26:49,020
لذلك أود أن إعداد على الفور تصنيف هنا وقيمة تعليقي هنا.

366
00:26:50,020 --> 00:26:59,950
لاحظ أنني لا أدخل اسم المستخدم الخاص بي أو اسم المؤلف الخاص بي هنا في النموذج هنا.

367
00:26:59,950 --> 00:27:03,820
الآن بالطبع، من أجل تقديم تعليق تحتاج إلى تسجيل الدخول.

368
00:27:03,820 --> 00:27:08,765
لذلك، إذا لم تقم بتسجيل الدخول إلى هذا التعليق لن يتم قبوله من قبل الخادم الخاص بي.

369
00:27:08,765 --> 00:27:11,165
لذلك، اسمحوا لي أولا تسجيل نفسي في.

370
00:27:11,165 --> 00:27:17,140
لذلك، يمكنني تسجيل الدخول هنا

371
00:27:17,140 --> 00:27:19,965
وفي اللحظة التي أقوم فيها بتسجيل الدخول تلاحظ على الفور أن

372
00:27:19,965 --> 00:27:23,485
شريط أدوات الرأس يتم تحديثه للإشارة إلى حالتي.

373
00:27:23,485 --> 00:27:28,255
الآن، يمكنني نشر هذا التعليق وستلاحظ أنه عندما أقوم بنشر التعليق،

374
00:27:28,255 --> 00:27:30,670
يتم إضافة التعليق إلى قائمة التعليقات

375
00:27:30,670 --> 00:27:33,120
وتلاحظ أيضًا أن حقل المؤلف يتم

376
00:27:33,120 --> 00:27:38,285
ملؤه تلقائيًا هنا لأن هذه هي الطريقة التي نقوم بها بإعداد جانب الخادم الخاص بنا.

377
00:27:38,285 --> 00:27:39,810
في حقل التعليقات،

378
00:27:39,810 --> 00:27:44,680
قمنا بإعداد مستخدمنا كمرجع إلى

379
00:27:44,680 --> 00:27:48,580
معلومات المستخدم التي نخزنها في

380
00:27:48,580 --> 00:27:53,060
جانب الخادم الخاص بنا، وبما أننا نستخدم ملء Mongoose Populate على جانب الخادم،

381
00:27:53,060 --> 00:27:55,555
يتم ملء معلومات المستخدم تلقائيًا

382
00:27:55,555 --> 00:27:58,230
في التعليقات الواردة من جانب الخادم.

383
00:27:58,230 --> 00:28:02,350
لذا، هذه هي الطريقة التي تلاحظ بها كيف يمكنني الاستفادة

384
00:28:02,350 --> 00:28:07,560
من ما يقدمه الخادم بالفعل بالنسبة لي لملء التفاصيل تلقائيًا.

385
00:28:08,290 --> 00:28:12,665
لذلك، تغييرات طفيفة مرة أخرى حتى

386
00:28:12,665 --> 00:28:20,420
في صفحة تفاصيل الطبق لتعكس استخدام دعم التعليقات على موقع الخادم.

387
00:28:20,420 --> 00:28:22,370
مع هذا، أكمل

388
00:28:22,370 --> 00:28:29,415
التوضيح السريع لعميل React الذي قمنا بتنفيذه كجزء من

389
00:28:29,415 --> 00:28:33,445
هذا التمرين، وآمل أن

390
00:28:33,445 --> 00:28:37,690
تذهب من خلال تفاصيل التعليمات البرمجية في العميل أيضا ومن ثم

391
00:28:37,690 --> 00:28:41,560
تعكس مرة أخرى على ما تعلمته في دورة React ونرى كيف

392
00:28:41,560 --> 00:28:46,230
أن التعديلات تمكننا من التنفيذ في تعديل،

393
00:28:46,230 --> 00:28:51,390
[غير مسموع] والتي هي الآن قادرة على التواصل مع الخادم ومن ثم دعم جميع الميزات التي

394
00:28:51,390 --> 00:28:58,770
كنا نعتزم أصلا تنفيذها كجزء من كل من العميل والجانب الخادم.