سلسلة دروس الفريموورك Vue.js [درس#2 Vue instance]


في الدرس السابق

:confetti_ball::tada: تعرفنا على الشاب الوسيم مخترع Vuejs كما قمنا بتثبيت الأدوات اللازمة
والآن سنبدأ بكتابة أول كود بالـVue ونتعرف على ماهية الـvue instance

قبل البداية:

  • الدروس ستكون مكتوبة بالخطوات
  • يوجد شرح فيديو بالأسفل مع كل درس
  • يرجى ربط أحزمة المقاعد استعدادا لانطلاق الطائرة :rocket::rocket::airplane::flying_saucer:

فهرس الدروس
  1. درس#1 تثبيت الأدوات
  2. درس#2 Vue instance
  3. درس#3 data & methods
  4. درس#4 Data Binding
  5. درس#5 events & event modifiers
  6. درس#6 keyboard modifiers
  7. درس#7 two-way data binding
  8. درس#8 ورشة عمل تسجيل دخول

يلا نبدأ :smiley:

سنقوم بانشاء ملف جافاسكريبت كما بالشكل

ولا ننسى عمل import لهذا الملف داخل index.html

<body>
 
  <script src="app.js"></script>
</body>

الآن سنضيف أول نموذج vue داخل ملف app.js باضافة الكود التالي: ==> new Vue({})
نموذج vue يقوم بإدارة كل شئ تقريبا داخل التطبيق الخاص بك
يمكنك خلق عدد لا نهائي من النماذج (مثلا لو أحببت تجعل الرسائل والتنويهات تُدار بنموذج vue مستقل عن النموذج المتحكم بالتطبيق لك ذلك)

داخل الأقواس ({ }) سنكتب الإعدادات أو الـparameters التي سنحتاجها
هاته الأقواس عبارة عن data object
كلنا يعرف الشكل العام للـdata object في لغة الجافاسكريبت مثل المثال التالي:

// مثال للتوضيح فقط
({
 data1: {},
data2: { x: null }
});

أول قيمة سنحتاجها هي الـ el أو العنصر الذي سيتم التحكم به داخل صفحتك

نتذكر معا صفحة index.html داخل الـbody

// index.html

<body>
  // هنا نحدد عنصر نستطيع التحكم به
  <div id="my-app">
  
  </div>
</body>

الآن في ماف app.js سنحدد الـid الخاص بالعنصر الذي كتبناه

// app.js
new Vue({
  el: '#my-app'
})

لنعود الى صفحة index.html

<body>

  <div id="my-app">
      // الآن أي شي يكتب هنا يدار بواسطة فيو
   
  </div>
</body>

لو حبينا نكتب أي شئ، لدى vue طريقة سحرية سنتعرف عليها سويا :smiley:

داخل ملف app.js سنضيف property جديدة وهي data:

new Vue({
  el: '#my-app',
  data: {
    name: 'coretabs'
  }
})

داخل data يمكنك وضع أي شيء تقريبا، سنكتفي بفرض قيمة name
الأن نود طباعة محتوى name داخل index.html باستخدام الـ blade syntax {{}}

<div id="my-app">
   <h1>
      {{ name }}
    </h1>
  </div>

والنتيجة :smiley:
image
العجيب في vue أنه يمكنك مثلا كتابة دالة داخل الblade
لنقم بتجربة جديدة (نكتب دالة شرطية مثلا):

 <div id="my-app">
    <h1>
      {{ name == 'coretabs' ? 'true' : 'false' }}
    </h1>
  </div>

والنتيجة :smiley:
image

في التجربة السابقة، كتبت الدالة الشرطية بصيغة الـ ternary operator وهي مختصرة عن الصيغة التالية:

if (condition) {
  // do something
} else {
  // do something else
}

لتكون بهذا الشكل:

condition ? do something : do something else

فقط جعلت vue يرى اذا كانت قيمة name تساوي coretabs

يمكنكم التفاعل مع الكود هنا:

أو هنا


هاته فقط تجربة توضح قدرات vue البسيطة، اذا كنت خبيرا في لغة jQuery تخيل عدد سطور الكود التي ستكتبها لتنفيذ نفس المهمة :smiley:

لنشاهد معا ما طبقناه في الفيديو التالي:


نتمنى لكم التوفيق :smiley:

درس#3 data & methods

6 Likes

ما شاء الله يا نصر

محتوى ذهبي كالعادة :heart_eyes:

أجمل شيء ذكرته في الفيديو هو سهولة استعمال الـ vue بالتحكم بأي عنصر، أي أن اضافتها بنفس بساطة jQuery بعكس بقية الـ frameworks الأخرى، تشعر أنك تتصارع معها لكي تبدأ بالعمل :laughing:

1 Like

تلميذك يا ياسر :smiley:

نعم أنا حاليا أتصارع مع react :smiley:

1 Like

الفيو عمل ثورة في مجاله، ويلا بينا نترحم على JQuery :stop_sign:
شرح في المستوى كالعادة

2 Likes

Dear jQuery,
RIP
Thanks
:smiley:

2 Likes

@YaserAlnajjar
@TChiOfficiel
تم تحديث جودة الفيديو

2 Likes

الجودة جميلة جدا، أحسن بكثير من ما كانت عليه
Never Give Up
:muscle::muscle:

2 Likes

التطوير شىء أساسي

2 Likes

@TChiOfficiel // @YaserAlnajjar // @asmaa_salih // @MosaabLaboune // @Alhakem
تم إضافة المحرر التفاعلي repl
والمحرر الخرافي sandbox

تسهيلا للتفاعل مع الكود

4 Likes

ما شاء الله تقدم مستمر واصرار عالي :clap::sunglasses:

بالمناسبة يا نصر

ما وجدت repl في هذا الفيديو :thinking:

1 Like

1 Like