מבוא
Vue.js היא מסגרת פשוטה של אפליקציית אינטרנט ליצירת ממשקי אינטרנט דינמיים ו אפליקציות לדף בודד (ספא). כשאנחנו יוצרים את האפליקציות האלה, לעתים קרובות, אנחנו רוצים להציג משהו על סמך קריטריון מסוים – זוהי המהות של עיבוד מותנה.
עיבוד מותנה מתייחס ליכולת להציג סימון ממשק משתמש (UI) מובחן בהתבסס על האם תנאי הוא אמיתי או לא. מושג זה משמש לעתים קרובות בהקשרים כמו הצגה או הסתרה של רכיבים (החלפת מצב), החלפת פונקציונליות של יישומים, טיפול באימות והרשאה ועוד רבים נוספים.
במאמר זה, נבחן דרכים שונות לעיבוד מותנה ב-Vue.js על ידי שימוש ב-
v-if
,v-else-if
, וv-else
הנחיות. נסקור גם כמה דוגמאות ונדגיש את ההבדל ביןv-if
וv-show
.
v-if
השמיים v-if
ההנחיה רגילה עיבוד מותנה בלוק כלומר הבלוק עם ה v-if
התכונה תהיה רק מיוצר אם ביטוי ההוראה מחזיר א true
ערך. אם הביטוי מייצר תוצאה לא חוקית (לדוגמה, null
, 0
, מחרוזת ריקה, false
), האלמנט הוא נמחק מ- DOM.
הבה נמחיש התנהגות זו בדוגמה המעשית:
<div v-if="login"> <p>This user has been logged in!... Welcome.</p>
</div> <script>
export default { data() { return { login: true, }; }
};
</script>
השאלה היא איך? login
מוגדר true
, ה <div>
בלוק המכיל v-if
ההנחיה תופק, וכך תוצג.
v-if vs v-show
ראוי לציין כי ה- v-show
יעבוד גם בדוגמה שלמעלה ויפעל לכאורה באופן זהה, אבל יש הבחנה בין השניים.
v-if
מעבד באופן מותנה אלמנט, ואילוv-show
מציג/מציג באופן מותנה יסוד.
זה מרמז שכאשר התנאי מוחלף, v-if
למעשה ימחק וישחזר רכיבים wile v-show
רק הופך אותם לבלתי נראים או גלויים. האנימציה הבאה ממחישה כיצד v-if
למעשה מוחק ומשחזר קוביות קוד:
בינתיים, v-show
תמיד ישמור על האלמנט ב-DOM ופשוט ישנה את ה-CSS שלו כדי לשנות את המראה שלו (על ידי הגדרתו display
ל none
):
v-else
השמיים v-else
ההנחיה היא א v-if
הנחיה המאפשרת לך להתאים אישית את false
ערך בעיבודים מותנים. אם זה לא true
, אתה יכול להשתמש v-else
להגדיר מה צריך לקרות במקום.
לדוגמה, נניח שיש לנו קלט סיסמה, ואנו רוצים שהיא תפיק הודעת שגיאה, "ססמה חלשה", אם אורך הקלט קטן מ-6 או תצוגה "סיסמא חזקה" אם האורך גדול מ-6.
זהו עיבוד מותנה, עם אפשרות לטיפול ב-false-case:
<form> <input type="password" v-model="password" placeholder="Enter your password" /> <p v-if="password.length > 6">Strong Password</p> <p v-else>Weak Password</p>
</form> <script>
export default { data() { return { password: "" }; }
};
</script>
הערה: v-if
/v-else
עובד כמו הרגיל if
ו if...else
ביטוי ב-JavaScript.
בואו נשתמש בזה כדי לשנות את התוכן של דף התחברות פשוט כך שהוא ישנה את ההודעה בהתבסס על האם משתמש מחובר או לא. נשנה את נוסח הכפתור בהתבסס על userLoggedIn
גם סטטוס:
<div id="app"> <div v-if="userLoggedIn"> <h2>Hello Welcome!</h2> <p>You have sucessfully logged in to your user account!</p> </div> <div v-else> <p>Please Log In to access your account!</p> </div> <button @click="userLoggedIn = !userLoggedIn"> <p v-if="!userLoggedIn">Login</p> <p v-else>LogOut</p> </button>
</div> <script>
export default { data() { return { userLoggedIn: false }; }
};
</script>
אירוע הלחיצה של הכפתור יחליף את userLoggedIn
פריט נתונים, וזה ישפיע על הנתונים המוצגים כפי שניתן לראות להלן:
v-else-if
v-else-if extends a v-if
עם else...if
לַחסוֹם. זה דומה לזה של JavaScript else...if
לחסום בכך שהוא מאפשר לנו להוסיף הצהרת if לקיים v-if
. זה משמש כאשר יש קריטריונים רבים לבדיקה וניתן לשרשר אותו מספר פעמים:
<form> <input type="password" v-model="password" placeholder="Enter your password" /> <p v-if="password.length < 4">Weak Password</p> <p v-else-if="password.length < 7">Fairly Strong Password</p> <p v-else>Strong Password</p>
</form> <script>
export default { data() { return { password: "" }; }
};
</script>
הערה: כאשר שניהם v-if
ו v-for
רגילים לאותו אלמנט, v-if
מוערך תחילה. זה פשוט מרמז על השימוש v-if
ו v-for
על אותו אלמנט לא מומלץ, בשל עדיפות מרומזת.
סיכום
במאמר זה, ראינו כיצד לבצע רינדור מותנה של אלמנט עם v-if
, v-else
, ו v-else-if
. הסברנו גם את ההבדל ביניהם v-if
ו v-show
.
- 7
- גישה
- האפליקציה
- בקשה
- אפליקציות
- מאמר
- אימות
- אישור
- לחסום
- שינוי
- קוד
- מצב
- תוכן
- יוצרים
- נתונים
- לְהַצִיג
- דינמי
- מַהוּת
- אירוע
- דוגמה
- ראשון
- הבא
- מסגרת
- פונקציה
- פונקציונלי
- טיפול
- להבליט
- איך
- איך
- HTTPS
- ICON
- מִמְשָׁק
- IT
- JavaScript
- לתחזק
- עושה
- משמעות
- יותר
- רעיון
- אפשרות
- סיסמה
- לייצר
- מיוצר
- רגיל
- החזרות
- סט
- הצבה
- דומה
- פָּשׁוּט
- So
- משהו
- הצהרה
- מצב
- חזק
- ui
- us
- להשתמש
- לנצל
- ערך
- שונים
- נראה
- אינטרנט
- ברוך הבא
- מה
- אם
- תיק עבודות
- עובד
- ראוי
- XML