**فيو جي اس** (بالإنجليزية: VueJS)‏ (يُشار إليه عادةً باسم فيو ونطقه يشبه نطق كلمة **View** الإنجليزية) هو إطار عمل جافاسكربت خاص بتصميم واجهات مواقع الويب. استُعمل **فيو جي اس** في تصميم واجهات مواقع مشهورة مثل نتفليكس، أدوبي، مجموعة علي بابا، غيت لاب، وغالبًا ما يستخدم بشكل رئيسي في تطوير تطبيقات الويب التي تعتمد على فلسفة ونمط الصفحة الواحدة **(SPA)** لقوم بتسهيل عملية البرمجة والتطوير ولكتابة كود أقل، والحصول على اداء عالي بسهولة.

التاريخ
-------

تم إنشاء فيو بواسطة ايفان يو بعد العمل لصالح جوجل باستخدام أنجولار جي اس في عدد من المشاريع. لخص لاحقًا عملية تفكيره: «لقد برزت، ماذا لو كان بإمكاني فقط استخراج الجزء الذي أعجبني في أنجولار وبناء شيء خفيف الوزن حقًا.» تم إصدار فيو لأول مرة في فبراير التالي، في عام 2014.

المميزات
--------

**يحوي هذا القسم على بعض المفاهيم التي تعتمد على البرمجة الكائنية.**

المقالة الرئيسة: برمجة كائنية التوجه
### المكونات (Components)

المكونات أو العناصر (Vue Components) ترث الصفات الأساسية لعنصر HTML لتقوم بتغليفه فيصبح عُنصر قابل لإعادة الاستخدام، ليصبح استخدامه أبسط بـمستوى عال، تعد المكونات عناصر HTML مُخصصة يتحكم Vue بما يكمن ورائها، وفي إطار Vue يُعد المُكون بشكل أساسي Vue instance (مثيلًا لـ كائن Vue)، مع بعض الإعدادات المسبقة التي يمكن تعديلها، وفي المثال أدناه يظهر لنا عنصر بسيط ، عبارة عن زر `<button>` يعرض عدد النقرات التي نُقرت عليه، وكلما قمت بضغط الزر سوف يزيد الرقم المعروض داخله.

```
<!DOCTYPE html>
<html>
<body>
<div id="app">

<button-counter></button-counter>
<!--
الزر المخصص الذي بُرمج باستخدام
Vue
-->
</div>

<script src="https://unpkg.com/vue@next"></script>
<!-- إدراج ملفات فيو -->
<script>
//
const app = Vue.createApp({})
// انشاء تطبيق فيو
app.component('button-counter', {
// تعريف مكون جديد في تطبيق فيو
data() {
return {
count: 0
}
}
// بيانات المُكون
/\*
يتم تخزين البيانات بنمط كائنات جافاسكربت
Object, Key: Value
\*/
/\*
count
هو المفتاح
0
هي القيمة
\*/
,
template: `
<button @click="count++">
You clicked me {{ count }} times.
</button>`
/\*
template:
قالب المكون
هو قالب
HTML
يستخدمه فيو لعرض العنصر
و إجراء التغيرات فيه
\*/
/\*
ما بين الأقواس المعقوفة
{{ count }}
تعد أكواد جافاسكربت وفي هذه الحالة سيتم عرض قيمة
count
\*/
/\*
@click
سيراقب فيو حدث الضغط على الزر ومن ثم يقوم بتنفيذ الأمر
count++
والتي ترجع إلى بيانات المُكون وسيقوم بتحديث البيانات في القالب، ويُعرض التغير للمستخدم
\*/
})

app.mount('#app')
/\*
ربط تطبيق فيو بالعنصر الذي يحمل
id="app"
في ملف
HTML
\*/
</script>

</body>
</html>

```

### قوالب (Templates)

يستخدم **فيو** قالبًا تشبه طريقة كتابته HTML إلى حد كبير جدًا مما يسهل على مطوري الويب التأقلم معه، يتيح القالب ربط البيانات مباشرةً على القالب بحيث يمكن للمتصفحات الداعمة لـفي تحليل القالب وعرضه كـHTML عادي، تستخدم **قوالب فيو** نظام Virtual DOM  .

### التفاعلية (Reactivity)

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

### الإنتقالات (Transitions)

يوفر **فيو** العديد من الخيارات لإضافة لإنتقالات وتأثيرات حركية على العناصر حينما يتم إدراجها، تحديثها، أو حذفها من الـ DOM ، ويكمن ذلك من خلال:

* قيام فيو بوضع **CSS Classes** بشكل تلقائي من أجل الإنتقالات والتأثيرات الحركية.
* إتاحة إمكانية دمج مكتبات CSS تحوي تأثيرات أنميشن حركية، على سبيل المثال **Animate.css.**

إضافة فيو جي اس للمتصفحات (Vue extension)
-----------------------------------------

إضافة بسيطة يمكن تنصيبها على متصفح جوجل كروم أو فيرفوكس أو المتصفحات المبنية عليها، تعرف باسم فيو-ديفـتولس (بالإنجليزية: vue-devtools)‏ .

**ملاحظة مهمة:** بخصوص فيو- ديفتولس هي انه لا يمكنك استخدامها إن كنت قد اخترت الملف المصغر من فيو في مشروعك، وعليك أيضاً أحياناً تفعيلها ضمن مشروعك إن لم تكن مفعلة مسبقاً، يمكنك تفعيلها عبر الكود التالي:
Vue.config.productionTip = false
تعطيك هذه الإضافة نظرة عامة عن المشروع بجميع تفاصيله، المتغيرات التي قمت بتحديدها والدوال وغير ذلك كما تقوم بقياس اداء الصفحة وغيرها من الأمور.

انظر أيضًا
----------

* أنجولار
* أنجولار جي إس
* رياكت

مراجع
-----

1. ↑  وصلة مرجع: .
2. ↑  وصلة مرجع: .
3. ↑  وصلة مرجع: .
4. ↑  وصلة مرجع: .
5. ↑  "The vue-js Open Source Project on Open Hub: Languages Page". *أهلوه*. اطلع عليه بتاريخ 20 سبتمبر 2018. `{{استشهاد ويب}}`: تحقق من التاريخ في: `|access-date=` (مساعدة)
6. ↑  وصلة مرجع: .
7. ↑  "Release 3.3.4". 18 مايو 2023. اطلع عليه بتاريخ 5 يونيو 2023. `{{استشهاد ويب}}`: تحقق من التاريخ في: `|access-date=` و`|date=` (مساعدة)
8. ↑  وصلة مرجع:. الوصول: 16 سبتمبر 2018.
9. ↑  "Between the Wires | Evan You". *Between the Wires*. 3 نوفمبر 2016. مؤرشف من الأصل في 2017-06-03. اطلع عليه بتاريخ 2017-08-26.
10. ↑  "Components Basics — Vue.js". *vuejs.org* (بالإنجليزية). Archived from the original on 2021-06-06. Retrieved 2021-06-09.
11. ↑  "Template Syntax - Vue.js" (بالإنجليزية). Archived from the original on 4 نوفمبر 2021. Retrieved 05/11/2021. `{{استشهاد ويب}}`: تحقق من التاريخ في: `|تاريخ الوصول=` (help)
12. ↑  "reactivity". *فيو جي إس*. 11–3–2017. مؤرشف من الأصل في 2021-05-06. اطلع عليه بتاريخ 16–6–2021.`{{استشهاد ويب}}`: صيانة CS1: تنسيق التاريخ (link)

وصلات خارجية
------------

* Vue.js على موقع Open Hub (الإنجليزية)عدل على Wikidata

|  |
| --- |
| **فيو جي إس** في المشاريع الشقيقة: |
|  | 
* صور وملفات صوتية من كومنز.
 |


| * ع
* ن
* ت
المنصات البرمجية لتطبيقات الويب |
| --- |
| بايثون | 
* جانغو
* فلاسك

 |
| بي إتش بي | 
* سيمفوني
* لارافل
* يي
* كيك بي إتش بي
* كود إغنيتر
* زاند فريم ورك
* فلكون

 |
| روبي | 
* روبي أون ريلز
* سيناترا
* مارب

 |
| بيرل | 
* كاتاليست

 |
| سمول توك | 
* سيسايد

 |
| جافاسكريبت | 

|  |  |
| --- | --- |
| جانب السيرفير  | 
* ميتيور
* إكسبرس جي أس

 |
| جانب المتصفحات  | 
* أنجولار
* أنجولار جي إس
* رياكت
* فيو جي أس

 |

 |
| سي إس إس | 
* بوتستراب

 |
| جافا | 
* جافاEE
* سبرينغ
* بلاي فريم ورك

 |
| سكالا | 
* بلاي فريم ورك

 |
| دوت نت | 
* إيه إس بي دوت نت

 |

* أيقونة بوابةبوابة إنترنت
* أيقونة بوابةبوابة برمجيات حرة
* أيقونة بوابةبوابة تقانة
* أيقونة بوابةبوابة تقانة المعلومات
* أيقونة بوابةبوابة علم الحاسوب