@חוקר אמר בהתקנה ושימוש עם bootstrap-vue:
עם התחביר template וסקריפט export default
איפה אוכל למצוא מידע מדוייק לחלק הזה?
הם 2 דרכים שונים לכתיבת קומפוננטס (רכיבים) ב-Vue.
חלק חשוב שפריימוורק כמו Vue וכדו' נותן הוא היכולת לחלק את הקוד לקומפוננטס, כאמור ל-Vue יש באופן כללי 2 דרכים לכתוב קומפוננטס:
- אפשר להמשיך בסגנון הנ"ל ולהצהיר על קומפוננט בצורה הזאת:
Vue.component('my-btn', {
template: `
<button class="btn-primary" @click.prevent="handleClick">
<slot></slot>(clicked - {{count}})
</button>
`,
data() {
return {
count: 0,
};
},
methods: {
handleClick() {
this.count++;
console.log('clicked', this.count);
},
},
});
וב-HTML קוריאים לקומפוננט:
<my-button></my-button>
בצורה הזאת מקבלים את כל הכוח של הספריה, והיתרון הגדול הוא שלא צריך build step, אפשר פשוט להכניס את Vue מ-CDN ולהתחיל לכתוב.
- אבל Vue גם מציע יותר מזה: Single File Components (SFC), שנכתבת בצורה שונה קצת:
<template>
<p class="demo">
<button class="btn-primary" @click.prevent="handleClick">
<slot></slot>(clicked - {{count}})
</button>
</p>
</template>
<script>
export default {
data() {
return {
count: 0,
};
},
methods: {
handleClick() {
this.count++;
console.log('clicked', this.count);
},
},
};
</script>
<style scoped>
.btn-primary {
display: inline-block;
font-size: 1.2rem;
color: #fff;
background-color: #3eaf7c;
padding: 0.8rem 1.6rem;
border-radius: 4px;
transition: background-color 0.1s ease;
box-sizing: border-box;
border-bottom: 1px solid #389d70;
}
</style>
כפי שאפשר להבין מהשם "single file componets", בגישה הזאת כותבים את כל רכיבי הקומפוננט (HTML, CSS, Javascript) בקובץ אחד.
יש בזה הרבה יתרונות:
- כל קומפוננט חי ב-scope נפרד
- אפשר להשתמש עם מודולים
- הדגשת תחביר
- אפשרות ל-Scoped CSS
ועוד
בגישה הזאת צריכים כמובן build step, אבל אין צורך להיבהל
Vue CLI הופך את כל התהליך לפשוט ביותר.
על SFC ראה יותר בתיעוד.
דוגמאות הקוד הנ"ל לקחתי מכאן.
ככלל התיעוד הרשמי של Vue הוא מאוד מצוין נראה לי שזה המקום הכי טוב להתחיל.
בהצלחה!!