Skip to content

4. المشروع [vuejs-02]: استخدام إطار العمل Bootstrap CSS

يعرض المشروع [vuejs-02] استخدام Bootstrap في مشروع [vue.js]. وسيتم استخدام إطار العمل CSS في جميع مشاريعنا. وسنستخدم نسخة معدلة من Bootstrap تُسمى [BootstrapVue] [https://bootstrap-vue.js.org/].

وستكون بنية المشروع كما يلي:

Image

ملاحظة: في ما سبق، تمت إعادة تسمية المجلد [vuejs] إلى [cours] [1] في بقية الوثيقة.

4.1. تثبيت إطار العمل [BootstrapVue]

[BootstrapVue] هو إطار عمل يُضاف إلى المشروع باستخدام الأداة [npm]:

Image

  • في [1]، يتم تثبيت إطارين: [Bootstrap] ونسخته [BootstrapVue]؛
  • في [2]، تظهر التبعيتان في الملف [package.json]؛

4.2. البرنامج النصي [main.js]

النص البرمجي الرئيسي [main.js] هو كما يلي:


// الاستيرادات
import Vue from 'vue'
import App from './App.vue'

// المكونات الإضافية
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue);

// bootstrap
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'

// التكوين
Vue.config.productionTip = false

// إنشاء مثيل للمشروع [App]
new Vue({
  render: h => h(App),
}).$mount('#التطبيق')
  • السطر 2: استيراد إطار العمل [Vue]؛
  • السطر 3: استيراد العرض الرئيسي؛
  • السطر 6: استيراد إطار العمل [BootstrapVue]؛
  • السطر 7: تم تصميم هذا الإطار كملحق لإطار العمل [Vue]. ويقوم السطر 7 بتضمين هذا الملحق في إطار العمل [Vue
  • السطران 10-11: استيراد ملفات CSS من الإطارات [Bootstrap] و [BootstrapVue
  • وبالتالي، فإن الأسطر 5-11 مخصصة بالكامل لاستخدام [BootstrapVue]. أما باقي الكود فهو مطابق لما رأيناه في الفقرة السابقة؛

4.3. المكون [App.vue]


<template>
  <b-container>
    <b-card>
      <!-- جومبوترون بوتستراب -->
      <b-jumbotron>
        <!-- سطر -->
        <b-row>
          <!-- عمود بعرض 4 -->
          <b-col cols="4">
            <img src="./assets/logo.jpg" alt="Cerisier en fleurs" />
          </b-col>
          <!-- عمود بعرض 8 -->
          <b-col cols="8">
            <h1>Calculez votre impôt</h1>
          </b-col>
        </b-row>
      </b-jumbotron>
      <HelloBootstrap msg="Hello Bootstrap !" />
    </b-card>
  </b-container>
</template>


<script>
  import HelloBootstrap from "./components/HelloBootstrap.vue";

  export default {
    name: "app",
    components: {
      HelloBootstrap
    }
  };
</script>

تعليقات

  • الأسطر 1-21: جميع العلامات <b-xx> هي علامات تابعة لإطار العمل [BootstrapVue]؛
  • السطران 2 و20: تحدد العلامة <b-container> حاوية Bootstrap. داخل هذه الحاوية، يمكننا تحديد الصفوف باستخدام العلامة <b-row> والأعمدة باستخدام العلامة <b-col
  • السطران 3 و19: العلامة <b-card> تُحدد «بطاقة» Bootstrap. ويظهر ذلك بصريًّا على شكل مستطيل ذي حدود؛
  • السطران 5 و17: تسمح العلامة <b-jumbotron> بإبراز جزء من الصفحة، وهو في هذه الحالة صورة ونص. وسنستخدمها في مشاريعنا المختلفة كعنصر تعريف بصري للمشروع؛
  • السطر 7: العلامة <b-row> تحدد صفًا؛
  • الأسطر 9-11: العلامة <b-col> تحدد عمودًا في الصف السابق. يخصص Bootstrap 12 عمودًا لكل صف. تشير السمة [cols=’4’] إلى أن العمود <b-col> سيشغل 4 من هذه الأعمدة الـ 12؛
  • السطر 10: صورة
  • الأسطر 13-15: عمود سيشغل 8 أعمدة من أصل 12 عمودًا في السطر. نضع فيه نصًّا؛
  • السطر 18: استخدام مكون يُسمى [HelloBootstrap] مع خاصية تُسمى [msg]؛
  • الأسطر 24-33: الجزء <script> من المكون؛
  • الأسطر 29-31: يتم تصدير المكون [HelloBootstrap] المستخدم في السطر 18. ولكي يصبح معروفًا، يجب استيراده في السطر 25؛

والنتيجة هي كما يلي:

Image

  • في [1]، العلامة <b-card
  • إلى [2]، العلامة <jumbotron
  • إلى [3]، الصورة المكونة من 4 أعمدة؛
  • في [4]، النص المكون من 8 أعمدة؛

4.4. المكون [HelloBootstrap]

[HelloBootstrap] هو المكون التالي:


<template>
  <div>
    <!-- رسالة على خلفية خضراء -->
    <b-col cols="12">
      <b-alert show variant="success" align="center">
        <h4>[vuejs-02] : bootstrap</h4>
      </b-alert>
    </b-col>
    <!-- رسالة على خلفية صفراء -->
    <b-col cols="12">
      <b-alert show variant="warning" align="center">
        <h4>{{msg}}</h4>
      </b-alert>
    </b-col>
  </div>
</template>

<script>
  export default {
    name: "HelloBootstrap",
    props: {
      msg: String
    }
  };
</script>

تعليقات

  • السطر 3: تعرض علامة <b-alert show> مستطيلًا ملونًا يُوضع فيه عادةً نص (السطر 6). تسمح السمة [variant] باختيار نوع التنبيه. لكل نوع من أنواع التنبيهات لون خلفية مختلف. لون النوع [success] هو الأخضر. تسمح السمة [align] بمحاذاة نص التنبيه (إلى اليسار، إلى اليمين، في الوسط). تجدر الإشارة إلى أن السمة [show] إلزامية لعرض التنبيه. بدون هذه السمة، لا يظهر التنبيه؛
  • القيم الممكنة لـ [variant]:
    • [primary]: أزرق؛
    • [secondary]: رمادي؛
    • [success]: أخضر؛
    • [danger]: أحمر فاتح؛
    • [warning]: أصفر؛
    • [info]: فيروزي؛
    • [light]: بدون لون خلفية؛
    • [dark]: رمادي أغمق قليلاً من [secondary]؛
  • السطر 12: [msg] هو معلمة للمكون [HelloBootstrap] (الأسطر 21-23)؛

والنتيجة المرئية هي كما يلي:

Image

  • [1]: علامة <b-alert show variant=’success’>؛
  • [2]: علامة <b-alert show variant=’warning’>؛

4.5. تنفيذ المشروع

لتنفيذ المشروع، نقوم أولاً بتعديل الملف [package.json]:

Image

  • إلى [3]، ثم نقوم بتعديل البرنامج النصي الذي يتم تنفيذه بواسطة الأمر [serve] [2] من الملف package.json [1]؛
  • في [4]، يتم تنفيذ المشروع؛

ملاحظة: في كل ما يلي، سنستخدم علامات إطار العمل BootstrapVue، وهي علامات بالصيغة <b-qqchose>. وهذا ليس إلزاميًا. يمكن استخدام العلامات الأصلية لإطار العمل Bootstrap. فهي تعمل بشكل سليم في قوالب [Vue.js]. كما يمكن للمطور المعتاد على علامات Bootstrap الاستمرار في استخدامها.