دسته : آموزش رایگان Vue.js
Vue.js یکی از محبوبترین فریمورکهای جاوا اسکریپت برای ساخت اپلیکیشنهای تعاملی و پویاست. در Vue.js، دو مفهوم Template و دیتابایندینگ (Data Binding)، نقشی کلیدی در مدیریت دادهها و رندرینگ پویا دارند. این مفاهیم به شما کمک میکنند تا دادههای خود را به سادگی به رابط کاربری متصل کنید و در نتیجه اپلیکیشنهایی بسازید که به تغییرات دادهها واکنش نشان دهند. در این مقاله، به معرفی Template و Data Binding در Vue.js میپردازیم و نحوه مدیریت دادهها و رندرینگ پویا را بررسی میکنیم.
آشنایی با Template و نحوه استفاده از آن در Vue.js
معرفی دیتابایندینگ (Data Binding) در Vue.js
نحوه مدیریت دادهها و نمایش پویا در Vue.js
بررسی انواع بایندینگها و استفاده کاربردی از آنها
در Vue.js، Template یا قالب، قسمتی از کد است که ساختار رابط کاربری (UI) شما را مشخص میکند. این قالب به صورت HTML نوشته میشود، اما قابلیت استفاده از دستورات Vue.js مانند {{ }} برای رندر کردن دادهها و دستورهای شرطی و تکراری را نیز دارد. در Vue.js، قالبها با دادهها و بایندینگها ترکیب میشوند تا بتوانید دادهها را به سادگی در UI نمایش دهید و رابط کاربری را به صورت پویا تغییر دهید.
< div id="app" >
< h1 > {{ message }} < / h1 >
< / div >
در این مثال، متغیر message در قالب با استفاده از {{ }} نمایش داده میشود و هر زمان که مقدار آن تغییر کند، به صورت خودکار در UI بهروزرسانی میشود.
یکی از ویژگیهای برجسته Vue.js دیتابایندینگ (Data Binding) است که به شما این امکان را میدهد تا دادههای خود را به عناصر رابط کاربری متصل کنید. Vue.js دو نوع دیتابایندینگ اصلی ارائه میدهد:
بایندینگ یکطرفه (One-Way Binding): دادهها تنها از بخش مدل به UI منتقل میشوند.
بایندینگ دوطرفه (Two-Way Binding): دادهها بین مدل و UI همگامسازی میشوند، به طوری که هر تغییری در UI به دادهها منتقل میشود و برعکس.
بایندینگ یکطرفه در Vue.js به شما امکان میدهد تا دادهها را به صورت مستقیم در قالب نمایش دهید. از {{ }} برای نمایش دادهها در قالب استفاده میشود. این روش، به خصوص برای نمایش دادههایی که تنها خواندنی هستند، مفید است.
مثال:
< div id="app" >
< h1 > {{ message }} < / h1 >
< / div >
< script >
new Vue({
el: '#app',
data: {
message: 'سلام به Vue.js'
}
});
< / script >
در این مثال، مقدار message در قالب نمایش داده میشود. هر تغییری که در message انجام شود، به صورت خودکار در رابط کاربری بهروزرسانی خواهد شد.
برای همگامسازی دادهها بین رابط کاربری و مدل، از v-model استفاده میشود. این بایندینگ به خصوص برای ورودیهای کاربر مانند فیلدهای متنی و چکباکسها مفید است، زیرا به شما امکان میدهد تا تغییرات در ورودیهای کاربر را مستقیماً در دادههای Vue.js ذخیره کنید.
مثال:
< div id="app" >
< input v-model="message" placeholder="متن خود را وارد کنید" >
< p > شما نوشتید: {{ message }} < / p >
< / div >
< script >
new Vue({
el: '#app',
data: {
message: ''
}
});
< / script >
در این مثال، v-model داده message را با ورودی همگام میکند. هر تغییری که کاربر در فیلد ورودی ایجاد کند، به صورت خودکار در message ذخیره و در قالب نمایش داده میشود.
در Vue.js، چند دستور خاص برای مدیریت نمایش و تکرار عناصر در قالب وجود دارد که از آنها برای ساختاردهی و تغییر پویا در UI استفاده میشود:
برای نمایش یا عدم نمایش یک المان بر اساس شرایط مشخصی، میتوان از v-if یا v-show استفاده کرد.
v-if: المان را تنها در صورتی در DOM قرار میدهد که شرط آن برقرار باشد.
v-show: المان را در DOM قرار میدهد اما نمایش آن را با display: none کنترل میکند.
مثال:
< div id="app" >
< button @click="toggleVisibility" > نمایش/عدم نمایش پیام < / button >
< p v-if="isVisible">پیام نمایش داده شده است! < / p >
< / div >
< script >
new Vue({
el: '#app',
data: {
isVisible: true
},
methods: {
toggleVisibility() {
this.isVisible = !this.isVisible;
}
}
});
< / script >
در این مثال، با کلیک روی دکمه، مقدار isVisible تغییر میکند و بر اساس مقدار آن، پاراگراف نمایش داده میشود یا پنهان میشود.
برای نمایش لیستی از عناصر، از دستور v-for استفاده میشود. این دستور مشابه حلقه در زبانهای برنامهنویسی است و به شما امکان میدهد که یک المان را بر اساس دادههای تکراری مانند آرایهها، چند بار نمایش دهید.
مثال:
< div id="app" >
< ul >
< li v-for="item in items" :key="item.id" > {{ item.text }} < / li >
< / ul >
< / div >
< script >
new Vue({
el: '#app',
data: {
items: [
{ id: 1, text: 'آیتم اول' },
{ id: 2, text: 'آیتم دوم' },
{ id: 3, text: 'آیتم سوم' }
]
}
});
< / script >
در این مثال، v-for لیست items را پیمایش میکند و هر عنصر آرایه را به صورت یک آیتم در قالب نمایش میدهد.
در این مثال، اپلیکیشنی میسازیم که لیستی از وظایف (Todo List) را نمایش میدهد و کاربر میتواند وظیفه جدیدی اضافه کند.
قالب HTML:
< div id="app" >
< h1 > لیست وظایف < / h1 >
< input v-model="newTask" placeholder="یک وظیفه جدید وارد کنید" >
< button @click="addTask" > اضافه کردن وظیفه < / button >
< ul >
< li v-for="(task, index) in tasks" :key="index" >
{{ task }}
< button @click="removeTask(index)" > حذف < / button >
< / li >
< / ul >
< / div >
اسکریپت Vue:
new Vue({
el: '#app',
data: {
newTask: '',
tasks: []
},
methods: {
addTask() {
if (this.newTask) {
this.tasks.push(this.newTask);
this.newTask = '';
}
},
removeTask(index) {
this.tasks.splice(index, 1);
}
}
});
توضیحات کد:
newTask: وظیفه جدیدی که کاربر وارد میکند.
tasks: آرایهای از وظایف که به عنوان لیست اصلی وظایف نمایش داده میشود.
addTask: این متد وظیفه جدید را به لیست tasks اضافه میکند.
removeTask: این متد وظیفه مورد نظر را از لیست حذف میکند.
v-model: بایندینگ دوطرفه برای ورودی کاربر، که وظیفه جدید را به newTask متصل میکند.
v-for: نمایش لیست tasks در قالب، به طوری که هر آیتم در لیست به صورت جداگانه نمایش داده میشود.
Vue.js با استفاده از Template و دیتابایندینگ، ساخت و مدیریت رابطهای کاربری پویا و واکنشگرا را بهطور قابل توجهی ساده کرده است. بایندینگ دوطرفه و مدیریت نمایش شرطی از ویژگیهای کلیدی Vue.js هستند که به شما این امکان را میدهند که دادهها را به سرعت و با حداقل کدنویسی به UI متصل کنید. با استفاده از این مفاهیم و دستورات Vue.js، میتوانید اپلیکیشنهایی با رندرینگ پویا و قابلیتهای تعاملی بسازید و تجربه کاربری بهتری ارائه دهید.
نظری یافت نشد
اصول پایه React.js: آشنایی با کامپوننتها، وضعیت و رندرینگ
28م شهریور 1402
مطالعه بیشتر
آموزش کار با رویدادهای فرم و اعتبارسنجی فرمها در جاوا اسکریپت: راهنمای جامع
3م آبان 1403
مطالعه بیشتر
آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگها و ایجاد افکتهای جذاب
12م آبان 1403
مطالعه بیشتر
آموزش استفاده از جدول در HTML: طراحی و استایلدهی جدولهای ساده و پیشرفته
21م مرداد 1402
مطالعه بیشتر
تنظیم عرض و ارتفاع عناصر در CSS: استفاده از width، height، max و min برای کنترل دقیق اندازهها
9م آبان 1403
مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403
مطالعه بیشتر
آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایلها
12م آبان 1403
مطالعه بیشتر
آموزش استفاده از position در CSS: نحوه موقعیتدهی عناصر در صفحات وب
9م آبان 1403
مطالعه بیشتر
آموزش استایلدهی لیستها در CSS: طراحی و استایلدهی ul و ol
10م آبان 1403
مطالعه بیشتر
آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثالها و مفاهیم
29م مهر 1403
مطالعه بیشتر
آموزش کامنتها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
23م مرداد 1402
مطالعه بیشتر
پارامترها و بازگشت از توابع در جاوا اسکریپت: نحوه تعریف و مدیریت خروجیها
2م بهمن 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد