Vue.js

שלד תוכנה בקוד פתוח

Vue.js (המכונה בדרך כלל Vue; מבוטא "וִיוּ" כמו "view"[1] ) היא שלד תוכנה בקוד פתוח של model–view–viewmodel פרונטאנד JavaScript לבניית ממשקי משתמש ויישומי עמוד בודד. השלד נוצר על ידי אוון יו, ומתוחזק על ידו ועל ידי שאר חברי צוות הליבה הפעילים. [2]

Vue.js
מחזור חייםפברואר 2014 – הווה (כ־10 שנים) עריכת הנתון בוויקינתונים
גרסה אחרונה3.4.25 (24 באפריל 2024) עריכת הנתון בוויקינתונים
מערכת הפעלהחוצה-פלטפורמות עריכת הנתון בוויקינתונים
נכתבה בשפותJavaScript, TypeScript עריכת הנתון בוויקינתונים
סוג רישיוןרישיון MIT עריכת הנתון בוויקינתונים
קוד מקורhttps://github.com/vuejs/core עריכת הנתון בוויקינתונים
vuejs.org
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

סקירה כללית

Vue.js כולל ארכיטקטורה הניתנת להתאמה הדרגתית ומתמקדת בעיבוד הצהרתי והרכבת רכיבים. ספריית הליבה מתמקדת בשכבת התצוגה בלבד.[1] תכונות מתקדמות הנדרשות ליישומים מורכבים כגון ניתוב, ניהול מצב וכלי בנייה מוצעים באמצעות ספריות וחבילות תומכות שמתוחזקות באופן רשמי.[3]

Vue.js מאפשר הרחבת HTML עם תכונות HTML הנקראות הנחיות.[4] ההנחיות מציעות פונקציונליות ליישומי HTML ומגיעות כהנחיות מובנות או בהגדרת משתמש.

היסטוריה

Vue נוצר על ידי אוון יו לאחר שעבד עבור Google באמצעות AngularJS במספר פרויקטים. מאוחר יותר הוא סיכם את תהליך החשיבה שלו: "חשבתי, מה אם אני יכול פשוט לחלץ את החלק שמאוד אהבתי ב-Angular ולבנות משהו ממש קליל". [5] תרומת קוד המקור הראשונה לפרויקט הייתה מתוארכת ליולי 2013, ו-Vue שוחרר לראשונה בפברואר הבא, ב-2014.

שמות הגרסאות נגזרים לעיתים קרובות ממנגה ואנימה, רובם בתוך ז'אנר המדע הבדיוני.

גרסאות

גִרְסָהתאריך הוצאהכותרתסוף LTSסוף החיים
3.311 במאי 2023רורואוני קנשין [6]
3.25 באוגוסט 2021חמישיות עיקריות [7]
3.17 ביוני 2021פלוטו [8]
3.018 בספטמבר 2020One Piece [9]
2.71 ביולי 2022נארוטו [10]31 בדצמבר 202331 בדצמבר 2023
2.64 בפברואר 2019מקרוס [11]18 במרץ 202218 בספטמבר 2023
2.513 באוקטובר 2017רמה E [12]
2.413 ביולי 2017קיל לה קיל [13]
2.327 באפריל 2017ההרפתקה המוזרה של ג'וג'ו [14]
2.226 בפברואר 2017ראשי D [15]
2.122 בנובמבר 2016האנטר אקס האנטר [16]
2.030 בספטמבר 2016רוח רפאים במעטפת [17]
1.027 באוקטובר 2015אוונגליון [18]
0.1212 ביוני 2015דרגון בול [19]
0.117 בנובמבר 2014קאובוי ביבופ [20]
0.1023 במרץ 2014בלייד ראנר [21]
0.925 בפברואר 2014Animatrix [22]
0.827 בינואר 2014[23]
0.724 בדצמבר 2013[24]
0.68 בדצמבר 2013VueJS [25]

כאשר משוחררת גרסה עיקרית חדשה, כלומר v3.yz, הגרסה המשנית האחרונה, כלומר 2.xy הופכת לגרסת LTS (תמיכה ארוכת טווח) למשך 18 חודשים (תיקוני באגים ותיקוני אבטחה) ובמשך 18 החודשים הבאים יהיה במצב תחזוקה (תיקוני אבטחה בלבד). [26]

תכונות

רכיבים

רכיבי Vue מרחיבים רכיבי HTML בסיסיים כדי להכיל קוד לשימוש חוזר. ברמה גבוהה, רכיבים הם אלמנטים מותאמים אישית שאליהם מצרף המהדר של ה-Vue התנהגות. ב-Vue, רכיב הוא בעצם מופע Vue עם אפשרויות מוגדרות מראש. [27] קטע הקוד שלהלן מכיל דוגמה של רכיב Vue. הרכיב מציג כפתור ומדפיס את מספר הפעמים שהלחצן נלחץ:

<template> <div id="tuto"> <button-clicked v-bind:initial-count="0"></button-clicked> </div></template><script>Vue.component('button-clicked', {    props: ['initialCount'],    data: () => ({        count: 0,    }),    template: '<button v-on:click="onClick">Clicked {{ count }} times</button>',    computed: {        countTimesTwo() {            return this.count * 2;        },    },    watch: {        count(newValue, oldValue) {            console.log(`The value of count is changed from ${oldValue} to ${newValue}.`);        },    },    methods: {        onClick() {            this.count += 1;        },    },    mounted() {        this.count = this.initialCount;    },});new Vue({    el: '#tuto',});</script>

תבניות

Vue משתמש בתחביר תבנית מבוסס HTML המאפשר לקשור את ה-DOM המעובד לנתונים באובייקט של Vue. כל תבניות Vue הן HTML חוקי שניתן לנתח על ידי דפדפנים תואמי מפרט ומנתחי HTML. ה-Vue מרכיב את התבניות לפונקציות עיבוד של DOM וירטואליות. מודל אובייקט מסמך וירטואלי (או "DOM") מאפשר ל-Vue לעבד רכיבים בזיכרון שלו לפני עדכון הדפדפן. בשילוב עם מערכת התגובתיות, Vue יכול לחשב את המספר המינימלי של רכיבים לעיבוד מחדש ולהחיל את הכמות המינימלית של מניפולציות DOM כאשר מצב האפליקציה משתנה.

תגובתיות

Vue כולל מערכת תגובתיות המשתמשת באובייקטי JavaScript פשוטים ובעיבוד מחדש מאופטם. כל רכיב עוקב אחר התלות התגובתית שלו במהלך העיבוד שלו, כך שהמערכת יודעת בדיוק מתי לעבד מחדש, ואילו רכיבים לעבד מחדש. [28]

מעברים

Vue מספקת מגוון דרכים להחיל אפקטי מעבר כאשר פריטים מוכנסים, מתעדכנים או מוסרים מה-DOM. זה כולל כלים ל:

  • החלה באופן אוטומטי של קלאסים עבור מעברי CSS ואנימציות
  • אינטגרציה של ספריות צד שלישי אנימציה CSS, כגון Animate.css
  • שימוש ב-JavaScript כדי לבצע מניפולציה ישירה של ה-DOM במהלך Hooking של מעברים
  • אינטגרציה של ספריות צד שלישי אנימציה של JavaScript, כגון Velocity.js

כאשר אלמנט עטוף ברכיב מעבר מוכנס או מוסר, זה מה שקורה:

  1. Vue ירחרח אוטומטית אם לרכיב היעד יש מעברי CSS או הנפשות. אם כן, קלאסים של מעבר CSS יתווספו או יוסרו בתזמונים המתאימים.
  2. אם רכיב המעבר סיפק Hooking ל-JavaScript, הוקים אלה ייקראו בתזמונים המתאימים.
  3. אם לא מזוהים מעברי CSS או אנימציות ולא מסופקים הוקים של JavaScript, פעולות ה-DOM להכנסה או הסרה יבוצעו מיד בפריים הבא. [29] [30]

ניתוב

חיסרון מסורתי של יישומי דף יחיד (SPA) הוא חוסר היכולת לשתף קישורים לדף ה"משנה" המדויק בתוך דף אינטרנט ספציפי. מכיוון שיישומים מסוג זה מספקים למשתמשים שלהם רק תגובה אחת המבוססת על כתובת אתר מהשרת (הוא משרת בדרך כלל index.html או index.vue), שמירה כסימניה של מסכים מסוימים או שיתוף קישורים לקטעים ספציפיים היא בדרך כלל קשה עד בלתי אפשרית. כדי לפתור בעיה זו, נתבים רבים בצד הלקוח מגדירים את כתובות האתרים הדינמיות שלהם ב-" hashbang " (#!), למשל page.com/#! / . עם זאת, עם HTML5 רוב הדפדפנים המודרניים תומכים בניתוב ללא hashbangs.

Vue מספקת ממשק לשינוי מה שמוצג בדף בהתבסס על נתיב ה-URL הנוכחי - ללא קשר לאופן שבו הוא שונה (בין אם באמצעות קישור שנשלח בדוא"ל, רענון או קישורים בתוך הדף). בנוסף, שימוש בנתב בפרונטאנד מאפשר מעבר מכוון של נתיב הדפדפן כאשר אירועי דפדפן מסוימים (כלומר קליקים) מתרחשים על כפתורים או קישורים. Vue עצמו אינו מגיע עם ניתוב, אבל חבילת הקוד הפתוח "vue-router" מספקת API לעדכון כתובת ה-URL של האפליקציה, תומכת בלחצן 'הקודם' (היסטוריית ניווט), ואיפוסי סיסמה בדוא"ל או קישורי אימות בדוא"ל עם פרמטרים של כתובת URL לאימות. הוא תומך במיפוי מסלולים מקוננים לרכיבים מקוננים ומציע בקרת מעבר מדויקת. עם Vue, מפתחים כבר מחברים יישומים עם אבני בניין קטנות הבונות רכיבים גדולים יותר. עם ה-vue-router שנכנס לתמונה, יש למפות רכיבים רק למסלולים שאליהם הם שייכים, ומסלולי הורה/שורש חייבים לציין היכן אלמנטים צאצאים צריכים להופיע. [31]

<div id="app"> <router-view></router-view></div>...<script>...const User = { template: '<div>User {{ $route.params.id }}</div>'};const router = new VueRouter({ routes: [ { path: '/user/:id', component: User } ]});...</script>
  1. מגדיר נתיב פרונטאנד בכתובת websitename.com/user/<id> .
  2. אשר יעבד ברכיב המשתמש המוגדר ב- (const User. . . )
  3. מאפשר לרכיב המשתמש להעביר את המזהה המסוים של המשתמש שהוקלד בכתובת האתר באמצעות מפתח params של אובייקט $route: $route.params.id .
  4. תבנית זו (המשתנה לפי הפרמטרים המועברים לנתב) תעובד ל- <router-view></router-view> בתוך ה-div#app של ה-DOM.
  5. ה-HTML שנוצר לבסוף עבור מישהו שמקליד: websitename.com/user/1 יהיה:
<div id="app">  <div>    <div>User 1</div>  </div></div>

אקוסיסטם

ספריית הליבה מגיעה עם כלים וספריות שפותחו על ידי צוות הליבה והתורמים.

כלי עבודה רשמיים

  • Devtools - תוסף דפדפן devtools לאיתור באגים ביישומי Vue.js
  • Vue CLI - כלי עבודה סטנדרטיים לפיתוח מהיר של Vue.js
  • Vue Loader – טוען webpack המאפשר כתיבה של רכיבי Vue בפורמט הנקרא Single-File Components (SFCs)

ספריות רשמיות

  • Vue Router - הנתב הרשמי
  • Vuex - ניהול מצב מרכזי בהשראת Flux
  • Vue Server Renderer - עיבוד בצד השרת
  • פיניה (Pinia)– ניהול מצב פשוט

ראו גם

קישורים חיצוניים

מדיה וקבצים בנושא Vue.js בוויקישיתוף

הערות שוליים

🔥 Top keywords: ערב אל-עראמשהעמוד ראשימיוחד:חיפושחטיפת חיילי צה"ל בהר דבליגת האלופותקטגוריה:זמרים ישראליםמלחמת חרבות ברזלמיוחד:שינויים אחרוניםקערת ליל הסדרקטגוריה:זמרים השרים בעבריתשקשוקה (סדרת טלוויזיה)התקיפה האיראנית על ישראל (2024)ריאל מדרידרותם אבוהבנמר אנטוליעדי אשכנזיאיראןיריחו (טיל)נעמי פולניג'קי אלקייםקרלו אנצ'לוטימרדכי שפרפייסבוקדרגות צה"לטיל בליסטיישראלמנצ'סטר סיטיחטיפת משפחת ביבסמיוחד:רשימת המעקבערוץ 77 באוקטובריוטיובעומר אדםיוסי כהןחטיבת עציוניפסחכלי טיס בלתי מאוישז'וזפ גוארדיולהעונת 2023/2024 בליגת האלופות