لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/18/23 في كل الموقع
-
السلام عليكم ما هو افضل كورس لتعلم الاله سواء مدفوع او مجانيه؟ وهل ابتد بكورس اساسيات تعلم الاله علي اكادميه حسوب ؟1 نقطة
-
السلام عليكم ، راودني سؤال و هو هل بإمكاني استعمال Bootstrap مع React او أي من أطر العمل الخاصة بجافا سكربت1 نقطة
-
السلام عليكم ورحمة الله وبركاته هل يوجد أمر معين يجب التنبه اليه عند استخدام win32com لم تعمل لدي ويكون نص الخطا: TypeError: write_to_excel() missing 1 required positional argument: 'file_path' لا يقبل مسار الملف المحدد مع العلم ان الملف موجود وليس به اخطاء بوركتم1 نقطة
-
وش اسوي بقيت هوب هل اتابع ادارة المشاريع البرمجيه و انا باقي بإنشاء الخوارزميات الي بمدخل علوم الحاسب ولا اتابع المقطع اذا خلصت الدوره؟1 نقطة
-
1 نقطة
-
for i in range(len(face_details_list[0])): x, y=face_details_list[0][i] turtle.goto(x, y) for i in range(len(face_details_list[1])): x, y=face_details_list[1][i] turtle.goto(x, y) مالخطأ بالكود بايثون1 نقطة
-
لماذا دورة بايثون هي أقل دورة بها مشاريع عملية جميع الدورات الاخري فيها مشاريع كثيرة فما سبب هذا؟؟1 نقطة
-
صحيح، فأنت نسيت تعريف المتغير face_details_list في الكود، ويستخدم هذا المتغير في دالة draw_face التي تستقبل قائمة تفاصيل الوجه. وتستطيع تعريف face_details_list بشكل منفصل قبل استدعاء الدالة draw_face وتمريره كوسيط للدالة عند استدعائها، كالتالي: import turtle face_one = [ [(-40, 120), (-70, 260), (-130, 230), (-170, 200), (-170, 100), (-160, 40), (-170, 10), (-150, -10), (-140, 10),(-40, -20), (0, -20)], [(0, -20), (40, -20), (140, 10), (150, -10), (170, 10), (160, 40), (170, 100), (170, 200), (130, 230), (70, 260),(40, 120), (0, 120)] ] face_two = [ [(-40, -30), (-50, -40), (-100, -46), (-130, -40), (-176, 0), (-186, -30), (-186, -40), (-120, -170), (-110, -210),(-80, -230), (-64, -210), (0, -210)], [(0, -210), (64, -210), (80, -230), (110, -210), (120, -170), (186, -40), (186, -30), (176, 0), (130, -40),(100, -46), (50, -40), (40, -30), (0, -30)] ] face_three = [ [(-60, -220), (-80, -240), (-110, -220), (-120, -250), (-90, -280), (-60, -260), (-30, -260), (-20, -250),(0, -250)], [(0, -250), (20, -250), (30, -260), (60, -260), (90, -280), (120, -250), (110, -220), (80, -240), (60, -220),(0,-220)] ] turtle.hideturtle() turtle.bgcolor("#ba161e") turtle.setup(500, 600) turtle.speed(3) def draw_face(face_details_list, start_point): my_turtle = turtle.Turtle() my_turtle.penup() my_turtle.goto(start_point) my_turtle.pendown() my_turtle.color("#fab104") my_turtle.begin_fill() for i in range(len(face_details_list[0])): x, y = face_details_list[0][i] my_turtle.goto(x, y) for i in range(len(face_details_list[1])): x, y = face_details_list[1][i] my_turtle.goto(x, y) my_turtle.end_fill() face_one_start = (0, 120) face_two_start = (0, -30) face_three_start = (0, -220) draw_face(face_one, face_one_start) draw_face(face_two, face_two_start) draw_face(face_three, face_three_start) turtle.done() ما تم تعديله هو تعريف face_details_list بشكل منفصل قبل استدعاء الدالة draw_face وتمريرها كوسيط للدالة عند استدعائها، وأيضًا نقل تعريف my_turtle داخل دالة draw_face لضمان إنشاء كائن Turtle جديد لكل وجه.1 نقطة
-
1 نقطة
-
طبقت بالضبط كما كتبت انت ولكن لسا بعد yمعطيني سهم الايرور my_turtle.goto(x, y)1 نقطة
-
دورة تطوير التطبيقات باستخدام لغة Python ، يوجد بها الكثير من المسارات العملية والتي يتم فيها شرح نماذج عملية ومشاريع مختلفة مثل :- تطبيقات عملية باستخدام بايثون Python تطوير متجر إلكتروني باستخدام جانغو Django تطوير واجهة برمجية لتعديل الصور باستخدام فلاسك Flask تطوير تطبيقات أودو Odoo بناء مدونة باستخدام فلاسك Flask داخل هذه المسارات يوجد الكثير من الدورس حول نماذج وتطبيقات عملية .1 نقطة
-
معنى الخطأ هو أن الدالة write_to_excel() تتطلب وسيط إضافي يسمى "file_path" ولم تقدمه عند استدعاء الدالة. أي يجب عليك تمرير مسار الملف الذي ترغب في الكتابة إليه كواحدة من المعاملات عند استدعاء الدالة write_to_excel()، وتأكد من تقديم المسار الصحيح للملف في الدالة. وإليك مثال يوضح كيفية استخدام win32com لكتابة بيانات إلى ملف Excel: import win32com.client as win32 def write_to_excel(file_path): excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Add() ws = wb.Worksheets('Sheet1') # كود الكتابة إلى الخلايا في الملف ws.Range('A1').Value = 'Hello' ws.Range('B1').Value = 'World' wb.SaveAs(file_path) excel.Application.Quit() file_path = 'C:/yourfolder/file.xlsx' write_to_excel(file_path) وعليك تغيير 'C:/yourfolder/file.xlsx' بالمسار الصحيح لملف Excel الذي ترغب في الكتابة إليه. وإذا استمرت المشكلة لديك، أرفق الكود سواء برفع مجلد المشروع أو من خلال إضافته من علامة <> لمساعدتك بشكل أفضل1 نقطة
-
بالطبع، يمكنك الانتقال بين أقسام الدورات وبدء التعلم في أي قسم ترغب فيه دون الحاجة إلى اتباع ترتيب محدد.1 نقطة
-
طبعا فإن هذا يعتمد على اجابة السؤال: "ما مدى اطلاعك على ما ستقوم بتخطيه؟" ، هل تقوم بتخطيه لأنك مطلع بالفعل على ما سيقدم أم أنك تستعجل التطبيق العملي وتجد المحتوى النظري مملا مثلا؟ مبدئيا، لا ينصح بذلك إذ أن تسلسل الدروس في الأكاديمية ليس موضوعا اعتباطا فهو يخضع للتسلسل في التعقيد وكذلك في طرح المادة العلمية والتعرض لها .. فقد يتم مثلا في مسار بناء صفحات الهبوط الاعتماد على جزئية تم شرحها بإسهاب في مسار سابق. وقد يكون هذا مشكلة وتشتيتا لبعض الطلبة. ولكن، مثلما أشار مصطفى، فإنه قد لا يشكل ذلك فرقا لبعض الطلبة الذين يمتلكون أغلب المعارف المتعرض لها كمكتسبات قبلية. ومع ذلك، أظن أنه من الأفضل المرور عليها وعدم تخطيها بشكل مباشر. أو على الأقل مشاهدتها دون تطبيقها عمليا أو تدوين ما تم شرحه.1 نقطة
-
كل ما تحتاج إلى معرفته بخصوص الإمتحان و الحصول على الشهادة تجده في هذه الصفحة: الامتحان والحصول على الشهادة إجابة على سؤالك يوجد إمتحان واحد نهائي مقسم على مراحل و لطلب التقدم تحتاج أن تستوفي بعض الشروط: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub أولًا بأول لمشاركتها معنا بعد التواصل مع مركز المساعدة للتقدم للإمتحان يحدد لك المدرب المسؤول موعد لمحادثة صوتية يطرح عليك فيها بعض الأسئلة المتعلقة بالدورة و يناقش معك ما أنجزته، للوقوف على مستواك، بعدها يحدد لك مشروع نهائي لتقوم بإنجازه يعتمد على ما تعلمته في الدورة في مدة ما بين أسبوع إلى اسبوعين، بعد إنجاز المشروع تقوم بتسليمه لمراجعته و تقييم مستواك النهائي و هل أصبحت كفؤ لتحصل على الشهادة أم يرشدك على أماكن القصور لديك لمراجعتها و طلب الإمتحان مرة أخرى.1 نقطة
-
التعلم الآلي أو تعلم الآلة (Machine Learning) هو مجموعة فرعية من الذكاء الاصطناعي الذي يستخدم تقنيات (مثل التعلم العميق) التي تمكن الأجهزة مـن استخدام الخبرة للتحسين في أداء المهام، وبالتالي إن كنت مهتماً في مجالات الذكاء الاصطناعي فحتماً ستجد ترابط كبير كون معظم تقنيات الذكاء الاصطناعي تصب في تعلّم الآلة وتعتبره حجر الأساس، فعلاقة تعليم الآلة بالذكاء الإصطناعي هي أنه يستخدم كأساس للذكاء الإصطناعي في العديد من التطبيقات. كما يعتمد تعليم الآلة على البيانات وتحليلها لإيجاد النماذج والأساليب الجديدة للتحليل والتنبؤ والتي بدورها من العمليات التي تندرج ضمن مجال الذكاء الاصطناعي. تعليم الآلة مفيد في سوق العمل، حيث يستخدم بشكل واسع في الأعمال والصناعات المختلفة، مثل التجارة والتسويق والتكنولوجيا والصحة وغيرها من التطبيقات التي تزداد يوماً بعد يوم. يمكنك قراءة المزيد من التفاصيل حول تطبيقات الذكاء الاصطناعي وتعلّم الآلة والاطلاع على بعض الخوارزميات والأمثلة:1 نقطة
-
سنلقي في هذا المقال نظرةً على خلفية إطار العمل Vue.js، وسنتعلمّ كيفية تثبيته وإنشاء مشروع جديد ودراسة بنية المشروع بأكمله مع مكوّناته، بالإضافة إلى كيفية تشغيله محليًا وتجهيزه للبناء. المتطلبات الأساسية: الإلمام بأساسيات لغات HTML وCSS وجافاسكربت JavaScript، ومعرفة استخدام سطر الأوامر أو الطرفية، إذ تُكتَب مكونات Vue بوصفها مجموعةً من كائنات جافاسكربت التي تدير بيانات التطبيق وصيغة القوالب المستنِدة إلى لغة HTML المرتبطة مع بنية نموذج DOM الأساسية، كما ستحتاج إلى طرفية مثبَّتٌ عليها node و npm لتثبيت Vue ولاستخدام بعض ميزاته الأكثر تقدمًا مثل مكوّنات الملف المفرد Single File Components أو دوال التصيير Render. الهدف: إعداد بيئة تطوير Vue المحلية وإنشاء تطبيق بسيط وفهم أساسيات كيفية عمله. يُعَدّ Vue.js إطار عمل جافاسكربت حديث يوفِّر تسهيلات مفيدةً للتحسين التدريجي على عكس العديد من أطر العمل الأخرى، إذ يمكنك استخدام إطار عمل Vue لتحسين شيفرة HTML الحالية، وبالتالي يمكنك استخدامه بوصفه بديلًا مؤقتًا لمكتبة ما مثل مكتبة jQuery. كما يمكنك استخدام Vue لكتابة تطبيقات الصفحة الواحدة Single Page Applications -أو SPA اختصارًا-، مما يتيح لك إنشاء شيفرة توصيف يديرها Vue بالكامل، كما يمكن أن يحسّن ذلك من تجربة المطوِّر وأدائه عند التعامل مع التطبيقات المعقّدة، كما يتيح لك الاستفادة من المكتبات للتوجيه من طرف العميل وإدارة الحالة عندما تحتاج ذلك، إذ يتخذ Vue نهجًا وسطيًا لاستخدام الأدوات مثل التوجيه من طرف العميل وإدارة الحالة، في حين يحتفظ فريق Vue الأساسي بالمكتبات المقترحة لهذه الوظائف، إلا أنها ليست مجمعةً مباشرةً ضمنه، مما يتيح اختيار مكتبة إدارة توجيه أو حالة مختلفة إذا ناسبت تطبيقك أكثر. كما يوفِّر Vue نهجًا تقدميًا لكتابة شيفرة التوصيف، ويتيح مثل معظم الإطارات العمل الأخرى إنشاء كتل قابلة لإعادة الاستخدام من شيفرة التوصيف باستخدام المكونات، كما تُكتَب مكونات Vue باستخدام صيغة قوالب HTML خاصةً، وإذا احتجت إلى تحكِّم أكبر مما تسمح به صيغة HTML، فيمكنك كتابة دوال JSX أو جافاسكربت الصرفة لتعريف مكوناتك. يمكن أن ترغب لاحقًا في إبقاء كتاب أساسيات إطار العمل Vue.js من أكاديمية حسوب وتوثيق API مفتوحَين في تبويبات أخرى، بحيث يمكنك الرجوع إليهما إذا أردتَ مزيدًا من المعلومات حول أيّ موضوع فرعي، كما يمكنك الاطلاع على موازنة جيدة بين Vue والعديد من الأطر الأخرى في توثيق Vue، ولكن يُحتمَل أن تكون هذه الموازنة منحازة. هذه المقالة جزء من سلسلة تمهيدية حول إطار العمل Vue.js وإليك كامل مقالات السلسلة: مدخل إلى إطار العمل Vue.js إنشاء المكونات في تطبيق Vue.js عرض مكونات Vue.js شرح مفهوم الأحداث والتوابع والنماذج في Vue.js إضافة تنسيق للمكونات واستعمال الخاصية computed في تطبيق Vue.js العرض الشرطي في إطار العمل Vue.js إدارة العناصر باستخدام خاصيات ref في إطار العمل Vue.js تثبيت Vue.js يمكنك استخدام إطار عمل Vue في موقع قائم من خلال وضع أحد عناصر <script> التالية في الصفحة، مما يتيح بدء استخدام Vue على المواقع الحالية، لذلك يفتخر Vue بكونه إطار عمل تقدمي، إذ يُعَدّ ذلك خيارًا رائعًا عند نقل مشروع موجود مسبقًا باستخدام مكتبة مثل مكتبة jQuery إلى Vue، وبالتالي يمكنك استخدام الكثير من ميزات Vue الأساسية مثل السمات والمكونات المُخصَّصة وإدارة البيانات. سكربت التطوير Development Script: غير مُحسَّن، ولكنه يتضمن تحذيرات الطرفية، وهذا رائع لعملية التطوير. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> سكربت الإنتاج Production Script: إصدار مُحسَّن، ويتضمّن الحد الأدنى من تحذيرات الطرفية، كما يوصَى بتحديد رقم الإصدار عند تضمين Vue في موقعك بحيث لا تؤدي أيّ تحديثات لإطار العمل إلى تعطيل موقعك المباشر دون علمك. <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> لكن هذا النهج له بعض القيود، إذ ستحتاج إلى استخدام حزمة NPM الخاصة بإطار عمل Vue لإنشاء تطبيقات أكثر تعقيدًا، مما سيتيح استخدام ميزات Vue المتقدمة والاستفادة من الحزم مثل WebPack، كما توجد واجهة سطر الأوامر CLI لتبسيط عملية التطوير، مما يسهّل إنشاء التطبيقات باستخدام Vue، إذ ستحتاج إلى ما يلي لاستخدام حزمة npm وواجهة CLI: تثبيت Node.js 8.11+. npm أو yarn. ملاحظة: إن لم تثبّت ما سبق مسبقًا، فتعرف على المزيد حول تثبيت npm و Node.js. شغّل الأمر التالي في طرفيتك لتثبيت CLI: npm install --global @vue/cli أو استخدم yarn: yarn global add @vue/cli يمكنك بعد ذلك فتح الطرفية في المجلد الذي تريد إنشاء المشروع فيه، وتشغيل الأمر vue create <project-name>، ثم ستعطيك واجهة CLI قائمةً بإعدادات المشروع التي يمكنك استخدامها، وهناك عدد قليل منها مُعَدّ مسبقًا، ويمكنك إعدادها بنفسك، إذ تتيح لك هذه الخيارات إعداد أشياء مثل شيفرة TypeScript وكشف الأخطاء المحتمَلة Linting والتوجيه vue-router والاختبار وغير ذلك. تهيئة مشروع جديد سننشئ نموذجًا لتطبيق قائمة المهام لاستكشاف ميزات Vue المختلفة، إذ سنبدأ باستخدام واجهة سطر أوامر Vue لإنشاء إطار عمل تطبيق جديد لبناء تطبيقنا فيه، لذا اتبع الخطوات التالية: اكتب الأمر cd في الطرفية للانتقال إلى المكان الذي تريد فيه إنشاء تطبيقك، ثم شغّل الأمر vue create moz-todo-vue. استخدم مفاتيح الأسهم ومفتاح Enter لتحديد خيار "تحديد الميزات يدويًا Manually select features". تسمح لك القائمة الأولى التي ستظهر لك باختيار الميزات التي تريد تضمينها في مشروعك، وتأكد من تحديد "Babel" و "Linter / Formatter"، فإذا لم تكن مُحدَّدةً، فاستخدم مفاتيح الأسهم ومفتاح المسافة للتبديل فيما بينها، ثم اضغط Enter للمتابعة. ستحدِّد بعد ذلك إعدادًا للميزة "linter / formatter"، لذا انتقل إلى الخيار "Eslint مع منع الأخطاء فقط Eslint with error prevention only" واضغط على Enter مرةً أخرى، إذ سيساعدنا ذلك على اكتشاف الأخطاء الشائعة دون مبالغة في الصرامة. سيُطلَب منك بعد ذلك ضبط نوع كشف الأخطاء المحتمَلة linting الآلي الذي تريده، لذا حدِّد الخيار "فحص الأخطاء عند الحفظ Lint on save"، مما سيؤدي إلى التحقق من وجود أخطاء عند حفظ ملف ضمن المشروع، ثم اضغط على Enter للمتابعة. ستحدِّد الآن كيف تريد إدارة ملفات الإعداد الخاصة بك، لذا سيضع الخيار "In dedicated config files" إعدادات الضبط الخاصة بك لأشياء مثل ESLint في ملفاتها المخصَّصة، وسيضع الخيار الآخر "In package.json" جميع إعدادات الضبط الخاصة بك في الملف package.json الخاص بالتطبيق، لذا حدِّد الخيار "In dedicated config files" واضغط على Enter. أخيرًا، ستُسأَل عن الحفظ على أساس إعداد مسبق للخيارات المستقبلية، فإذا أردتَ استخدام هذه الإعدادات وإلغاء الإعدادات المسبقة الحالية وتريد استخدامها مرةً أخرى، فاكتب y؛ وإلّا فاكتب n. ستبدأ واجهة CLI الآن في إنشاء الشيفرة المساعدة Scaffolding لمشروعك، وتثبيت كل اعتمادياتك. إذا لم تشغّل واجهة CLI الخاصة بإطار العمل Vue سابقًا، فسيظهر سؤال آخر، إذ سيُطلَب منك اختيار مدير الحزم، ويمكنك استخدام مفاتيح الأسهم لتحديد مدير الحزم الذي تفضله ليكون مدير الحزم الافتراضي من الآن فصاعدًا، فإذا احتجتَ استخدام مدير حزم مختلف بعد ذلك، فيمكنك تمرير الراية التالية عند تشغيل الأمر vue create: --packageManager=<package-manager> وبالتالي إذا أردت إنشاء مشروع moz-todo-vue باستخدام مدير الحزم npm واخترت yarn سابقًا، فيمكنك تشغيل الأمر التالي: vue create moz-todo-vue --packageManager=npm بنية المشروع إذا سار كل شيء على ما يرام، فيُفترَض إنشاء سلسلة من الملفات والمجلدات لمشروعك أهمها ما يلي: .eslintrc.js: ملف إعداد أداة ESLint الذي يمكنك استخدامه لإدارة قواعد كشف الأخطاء المحتملة. babel.config.js: ملف إعداد Babel الذي يحوِّل ميزات جافاسكربت الحديثة المستخدَمة في شيفرة التطوير إلى صيغة أقدم أكثر توافقًا مع المتصفحات في شيفرة الإنتاج، ويمكنك تسجيل إضافات Babel الإضافية في هذا الملف. .browserslistrc: هو إعداد لقائمة المتصفحات، ويمكنك استخدامه للتحكُّم في المتصفحات التي تعمل أدواتك على تحسينها. public: يحتوي هذا المجلد على الأصول الساكنة المنشورة، ولكن لم يعالجها Webpack أثناء البناء باستثناء الملف index.html الذي يحصل على بعض المعالجة. favicon.ico: الرمز أو الأيقونة المفضلة Favicon لتطبيقك، وهو شعار Vue حاليًا. index.html: هو قالب تطبيقك، حيث يُشغَّل تطبيق Vue من صفحة HTML هذه، ويمكنك استخدام صيغة قوالب Lodash لتعديل القيم فيها، ولاحظ أنه لا يُستخدَم هذا القالب لإدارة تخطيط تطبيقك، بل هو مخصَّص لإدارة ملفات HTML الساكنة الموجودة خارج تطبيق Vue، إذ يُعدَّل هذا الملف في حالات الاستخدام المتقدِّمة فقط. src: يحتوي هذا المجلد على مركز تطبيق Vue. main.js: هو نقطة الدخول إلى تطبيقك، إذ يهيّئ هذا الملف حاليًا تطبيق Vue ويشير إلى عنصر HTML في الملف index.html الذي يجب ربطه مع تطبيقك، كما يُعَدّ هذا الملف المكانَ الذي تسجِّل فيه المكونات العامة أو مكتبات Vue الإضافية في أغلب الأحيان. App.vue: هو مكون المستوى الأعلى في تطبيق Vue. components: يُعَد هذا المجلد المكان الذي تحتفظ فيه بمكوناتك، ويحتوي حاليًا على مثال لمكوِّن واحد فقط. assets: هذا المجلد مخصص لتخزين الأصول الساكنة مثل ملفات CSS والصور، وبما أنّ هذه الملفات موجودة في المجلد المصدر، فيمكن أن يعالجها Webpack، وهذا يعني أنه يمكنك استخدام المعالِجات المسبقة مثل Sass/SCSS أو Stylus. ملاحظة: يمكن وجود مجلدات أخرى بناءً على الخيارات التي تحددها عند إنشاء مشروع جديد، فإذا اخترت موجّهًا مثلًا، فسيكون لديك أيضًا المجلد views. ملفات .vue مكونات الملف المفرد تُعَدّ المكونات جزءًا أساسيًا من إنشاء التطبيقات في Vue كما هو الحال في العديد من أطر عمل الواجهة الأمامية، إذ تسمح هذه المكونات بتقسيم تطبيق كبير إلى كتل بناء منفصلة يمكن إنشاؤها وإدارتها، ونقل البيانات بين بعضها البعض كما هو مطلوب. يمكن أن تساعدك هذه الكتل الصغيرة في معرفة ما تفعله شيفرتك البرمجية واختبارها. يمكن أن تشجعك بعض أطر العمل على فصل شيفرات القالب والمنطق والتصميم إلى ملفات منفصلة، ولكن يتبع Vue النهج المعاكس، إذ يتيح لك باستخدام مكونات الملف المفرد Single File Components تجميع قوالبك والسكربتات المقابلة وشيفرة CSS معًا في ملف واحد ينتهي باللاحقة .vue، وتعالج أداة بناء JS -مثل Webpack- هذه الملفات، مما يعني أنه يمكنك الاستفادة من أدوات وقت البناء في مشروعك، وبالتالي يمكنك استخدام أدوات مثل Babel و TypeScript و SCSS وغيرها لإنشاء مكونات أكثر تعقيدًا. تُضبَط المشاريع المُنشَأة باستخدام واجهة CLI الخاصة بإطار عمل Vue لاستخدام ملفات .vue مع Webpack، فإذا نظرت ضمن المجلد src في المشروع الذي أنشأناه باستخدام CLI، فسترى أول ملف .vue وهو App.vue. App.vue افتح الملف App.vue وسترى أنه يتكون من ثلاثة أجزاء هي: <template> و <script> و <style> التي تحتوي على معلومات قالب المكوِّن وسكربتاته وتنسيقه، وتشترك كافة مكونات الملف المفرد في البنية الأساسية نفسها، كما يحتوي عنصر القالب <template> على بنية شيفرة التوصيف ومنطق عرض مكونك، كما يمكن أن يحتوي قالبك على أيّ شيفرة HTML صالحة، بالإضافة إلى بعض الصيغ الخاصة بإطار عمل Vue التي سنشرحها لاحقًا. ملاحظة: يمكنك استخدام صيغة قالب Pug بدلًا من لغة HTML القياسية من خلال ضبط السمة lang في الوسم <template> بالصورة <template lang="pug">، إذ سنلتزم باستخدام لغة HTML القياسية في هذا المقال، ولكن يجب أن تعرف أنّ ذلك ممكن. يحتوي العنصر <script> على المنطق الذي لا يُعرَض من المكوِّن، إذ يجب أن يحتوي الوسم <script> على كائن جافاسكربت JS افتراضي مُصدَّر، ويُعَدّ هذا الكائن المكان الذي تسجِّل فيه المكونات محليًا، وتعرِّف مدخلات المكوّن (الخاصيات Props)، وتتعامل مع الحالة المحلية، وتعرِّف التوابع وغير ذلك، كما ستعمل خطوة البناء على معالجة هذا الكائن وتحويله مع قالبك إلى مكوّن Vue باستخدام الدالة render(). يضبط التصدير الافتراضي في حالة App.vue اسم المكوّن على App ويسجّل المكوّن HelloWorld من خلال إضافته إلى الخاصية components، فإذا سجّلتَ أحد المكوّنات بهذه الطريقة، فهذا يعني أنك تسجله محليًا، ولا يمكن استخدام المكوّنات المسجلة محليًا إلا ضمن المكوّنات التي تسجلها، لذلك يجب استيرادها وتسجيلها في كل ملف مكوّن يستخدمها. يمكن أن يكون هذا مفيدًا لتقسيم الحزم أو تقنية هز الشجرة Tree Shaking، إذ لا تحتاج كل صفحة في تطبيقك إلى جميع المكوّنات بالضرورة. import HelloWorld from './components/HelloWorld.vue'; export default { name: 'App', components: { // يمكنك تسجيل المكونات محليًا هنا. HelloWorld } }; ملاحظة: إذا أردت استخدام صيغة لغة TypeScript، فيجب ضبط السمة lang في الوسم <script> للإشارة إلى المصرِّف الذي تستخدمه لغة TypeScript بالصورة: <script lang="ts">. يُعَدّ العنصر <style> المكان الذي تكتب فيه شيفرة CSS الخاصة بالمكوّن، فإذا أضفتَ السمة scoped بالصورة <style scoped>، فسيحدِّد إطار العمل Vue نطاق التنسيقات لمحتويات مكوّن الملف المفرد SFC، إذ يعمل هذا العنصر بطريقة مشابهة لحلول CSS في JS، ولكنه يسمح لك فقط بكتابة شيفرة CSS عادية. ملاحظة: إذا اخترتَ معالج CSS مسبَق عند إنشاء المشروع باستخدام واجهة سطر الأوامر CLI، فيمكنك إضافة السمة lang إلى الوسم <style> بحيث يمكن معالجة المحتويات باستخدام Webpack في وقت البناء مثل الوسم <style lang="scss"> الذي يسمح باستخدام صيغة SCSS في معلومات التنسيق. تشغيل التطبيق محليا تأتي واجهة CLI الخاصة بإطار العمل Vue مع خادم تطوير مضمَّن، مما يتيح تشغيل تطبيقك محليًا لتتمكّن من اختباره بسهولة دون الحاجة إلى إعداد خادم بنفسك، إذ تضيف CLI الأمر serve إلى الملف package.json الخاص بالمشروع بوصفه سكربت npm بحيث يمكنك تشغيله بسهولة. شغّل الأمر npm run serve في طرفيتك أو الأمر yarn serve إذا أردت استخدام yarn، إذ يجب أن ينتج شيء يشبه ما يلي: INFO Starting development server... 98% after emitting CopyPlugin DONE Compiled successfully in 18121ms App running at: - Local: <http://localhost:8080/> - Network: <http://192.168.1.9:8080/> Note that the development build is not optimized. To create a production build, run npm run build. إذا انتقلت إلى العنوان المحلي في تبويب متصفح جديد مثل العنوان http://localhost:8080 أو يمكن أن يختلف بناءً على إعداداتك، فيجب أن ترى تطبيقك، إذ يجب أن يحتوي التطبيق حاليًا على رسالة ترحيب، ورابطًا إلى توثيق Vue، وروابطًا إلى الإضافات التي أضفتها عند تهيئة التطبيق باستخدام CLI، بالإضافة إلى بعض الروابط المفيدة الأخرى إلى مجتمع Vue ونظامه البيئي. إجراء بعض التعديلات على التطبيق التعديل الأول الذي سنجريه على التطبيق هو حذف شعار Vue، لذا افتح الملف App.vue واحذف العنصر <img> من قسم القالب: <img alt="Vue logo" src="./assets/logo.png"> إذا كان خادمك قيد التشغيل، فيُفترَض أن ترى الشعار محذوفًا من الموقع المُصيَّر مباشرةً تقريبًا، فلنحذف الآن المكوّن HelloWorld من القالب. أولًا احذف السطر التالي: <HelloWorld msg="Welcome to Your Vue.js App"/> إذا حفظت الملف App.vue الآن، فسيعطي التطبيق المُصيَّر خطأً لأننا سجَّلنا المكوّن ولكننا لم نستخدِمه، إذ يجب أيضًا إزالة الأسطر الموجودة ضمن العنصر <script> الذي يستورِد المكوّن ويسجله، لذا احذف الأسطر التالية: import HelloWorld from './components/HelloWorld.vue' components: { HelloWorld } يجب ألّا يعرض تطبيقك المُصيَّر أيّ خطأ حاليًا، وإنما سيعرض صفحةً فارغةً فقط، إذ لا يوجد حاليًا محتوًى مرئيًا ضمن عنصر القالب <template>. لنضِف عنصر <h1> جديد ضمن العنصر <div id="app">، وبما أننا سننشئ تطبيق قائمة المهام، فلنضبط نص العنوان ليكون "To-Do List" كما يلي: <template> <div id="app"> <h1>To-Do List</h1> </div> </template> سيعرض التطبيق العنوان كما هو متوقع. الخلاصة تعلّمنا في هذا المقال بعض أفكار إطار العمل Vue وأنشأنا شيفرة تطبيقنا المساعدة وفحصناه وأجرينا بعض التعديلات الأولية؛ أما الآن فسنذهب إلى أبعد من ذلك وننشئ تطبيق قائمة المهام الأساسي الذي يسمح بتخزين قائمة بالعناصر وإلغاء تحديدها عند الانتهاء وترشيح جميع المهام والمهام المكتملة والمهام غير المكتملة في القائمة، كما سنبني في المقال التالي أول مكوّن مخصَّص، وسنتعرّف على بعض المفاهيم المهمة مثل تمرير الخاصيات وحفظ حالة البيانات. ترجمة -وبتصرّف- للمقال Getting started with Vue. اقرأ أيضًا مدخل إلى التعامل مع المكونات في Vue.js التعامل مع دخل المستخدم عن طريق نماذج الإدخال في Vue.js النسخة الكاملة لكتاب أساسيات إطار العمل Vue.js1 نقطة
-
إن كنت مطور ويب أو أحد المهتمين بتطوير الأنظمة المعلوماتية المختلفة في بيئة الويب، فإنك تعلم حجم التنوع الكبير للغات البرمجة المستخدمة في تطوير مواقع الويب وخدماته، ولربما كنت أحد مطوري هذه الخدمات وترغب بأن تكون خدماتك سريعة الانتشار وسهلة الاستخدام من قبل التطبيقات المختلفة ، وكما تعلم فإن كثرة لغات البرمجة المستخدمة في تطوير خدمات الويب تجعل من الصعب التواصل والتكامل بين هذه التطبيقات. إن المصطلح REST وهو اختصار لـ Representational state transfer يعبر عن المعمارية المستخدمة في تطوير خدمات الويب، التي تهدف إلى وضع معايير تضبط إدارة موارد الأنظمة resources وتحدد كيفية عنونتها ونقلها عبر بروتوكل HTTP إلى طيف واسع من التطبيقات المختلفة بغض النظر عن لغات البرمجة التي طورت بها تلك التطبيقات، وتعد معمارية REST أكثر معماريات تصميم الويب هيمنة خلال السنوات الماضية وذلك لسهولة استخدامها والتعامل معها. بعد التعرف على RESTful ستكون قادر على الانطلاق لتصميم الخدمة الخاصة بك دون القلق بشأن من سيستخدم الخدمة الخاصة بك.1 نقطة
-
إن OAUTH2 هو بروتوكول أو معيار، لذلك من الممكن أن يحوي ضمنه طريقة التوثيق باستخدام JWT. أما JWT فهو فقط رمز token، يتم استخدامه بين طرفي خادم الويب والعميل للتحقق والتوثيق وبالتالي ليس آلية توثيق متكاملة بحد ذاتها. بالنسبة للاستخدام، فذلك يعود لطبيعة المشروع، في حال كان مشروعك بسيط مكوّن من تطبيق زبون client application واحد، فلا حاجة لاستخدام Oauth. أما في حال كان لديك مجموعة من التطبيقات التي ستتعامل مع خادم الويب وبأنواع مختلفة: تطبيقات ويب، تطبيقات هاتف جوال، وغيرها.. عندها سيكون من الأفضل استخدام Oauth بدلاً من تطبيق العمليات وإدارتها بنفسك. في النهاية، لا يوجد قانون محدّد لذلك، قد تختلف المتطلبات وأساسيات الحماية المطلوب توافرها في مشروعك.1 نقطة
-
REST API هي معمارية تفيد في بناء الموارد والاستعلام عنها بين خدمات الويب، وتحديدا كيف يتم تطبيق هذه الفلسفة في بروتوكول HTTP REST هو اختصار ل Representational State Transfer أي كيف يمكن لنا أن نعبر عن شكل حالة ما وننقلها بين الخدمات. API تعني Application Programming Interface وهو الواجهة التي يتمكن من خلالها المستخدم الخارجي من ضبط والتأثير على الخدمة. دمج المصطلحين معا يعني أن توفر الخدمة واجهة برمجية API مبنية بطريقة REST يمكن للمستخدمين (أو الخدمات بين بعضها) التواصل عبرها عبر بروتوكول HTTP يتم استخدامها في بناء واجهات النظم الخلفية عادة لاغلب الانظمة يمكنك متابعة فيديو الشرح والقراءة عن REST أكثر عبر المقال التالي1 نقطة