آموزش رایگان Vue.js

مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا

28م شهریور 1402 محراب حسن زاده
مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا

Vue.js یکی از محبوب‌ترین فریم‌ورک‌های جاوا اسکریپت برای ساخت اپلیکیشن‌های تعاملی و پویاست. در Vue.js، دو مفهوم Template و دیتابایندینگ (Data Binding)، نقشی کلیدی در مدیریت داده‌ها و رندرینگ پویا دارند. این مفاهیم به شما کمک می‌کنند تا داده‌های خود را به سادگی به رابط کاربری متصل کنید و در نتیجه اپلیکیشن‌هایی بسازید که به تغییرات داده‌ها واکنش نشان دهند. در این مقاله، به معرفی Template و Data Binding در Vue.js می‌پردازیم و نحوه مدیریت داده‌ها و رندرینگ پویا را بررسی می‌کنیم.


اهداف این مقاله:

  • آشنایی با Template و نحوه استفاده از آن در Vue.js

  • معرفی دیتابایندینگ (Data Binding) در Vue.js

  • نحوه مدیریت داده‌ها و نمایش پویا در Vue.js

  • بررسی انواع بایندینگ‌ها و استفاده کاربردی از آن‌ها


Template در Vue.js چیست؟

در Vue.js، Template یا قالب، قسمتی از کد است که ساختار رابط کاربری (UI) شما را مشخص می‌کند. این قالب به صورت HTML نوشته می‌شود، اما قابلیت استفاده از دستورات Vue.js مانند {{ }} برای رندر کردن داده‌ها و دستورهای شرطی و تکراری را نیز دارد. در Vue.js، قالب‌ها با داده‌ها و بایندینگ‌ها ترکیب می‌شوند تا بتوانید داده‌ها را به سادگی در UI نمایش دهید و رابط کاربری را به صورت پویا تغییر دهید.


مثال ساده از یک Template:



< div id="app" >
    < h1 > {{ message }} < / h1 >
< / div >


در این مثال، متغیر message در قالب با استفاده از {{ }} نمایش داده می‌شود و هر زمان که مقدار آن تغییر کند، به صورت خودکار در UI به‌روزرسانی می‌شود.


دیتابایندینگ (Data Binding) در Vue.js

یکی از ویژگی‌های برجسته Vue.js دیتابایندینگ (Data Binding) است که به شما این امکان را می‌دهد تا داده‌های خود را به عناصر رابط کاربری متصل کنید. Vue.js دو نوع دیتابایندینگ اصلی ارائه می‌دهد:

  • بایندینگ یک‌طرفه (One-Way Binding): داده‌ها تنها از بخش مدل به UI منتقل می‌شوند.

  • بایندینگ دوطرفه (Two-Way Binding): داده‌ها بین مدل و UI همگام‌سازی می‌شوند، به طوری که هر تغییری در UI به داده‌ها منتقل می‌شود و برعکس.


بایندینگ یک‌طرفه: استفاده از {{ }} (Interpolation)

بایندینگ یک‌طرفه در Vue.js به شما امکان می‌دهد تا داده‌ها را به صورت مستقیم در قالب نمایش دهید. از {{ }} برای نمایش داده‌ها در قالب استفاده می‌شود. این روش، به خصوص برای نمایش داده‌هایی که تنها خواندنی هستند، مفید است.

مثال:


< div id="app" >
    < h1 > {{ message }} < / h1 >
< / div >

< script >
new Vue({
    el: '#app',
    data: {
        message: 'سلام به Vue.js'
    }
});
< / script >


در این مثال، مقدار message در قالب نمایش داده می‌شود. هر تغییری که در message انجام شود، به صورت خودکار در رابط کاربری به‌روزرسانی خواهد شد.


بایندینگ دوطرفه: استفاده از v-model

برای همگام‌سازی داده‌ها بین رابط کاربری و مدل، از 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 برای مدیریت نمایش پویا

در Vue.js، چند دستور خاص برای مدیریت نمایش و تکرار عناصر در قالب وجود دارد که از آن‌ها برای ساختاردهی و تغییر پویا در UI استفاده می‌شود:


v-if و v-show: مدیریت نمایش شرطی

برای نمایش یا عدم نمایش یک المان بر اساس شرایط مشخصی، می‌توان از 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: تکرار عناصر

برای نمایش لیستی از عناصر، از دستور 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 را پیمایش می‌کند و هر عنصر آرایه را به صورت یک آیتم در قالب نمایش می‌دهد.


مثال نهایی: پیاده‌سازی رندرینگ پویا با دیتابایندینگ و Template در Vue.js

در این مثال، اپلیکیشنی می‌سازیم که لیستی از وظایف (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، می‌توانید اپلیکیشن‌هایی با رندرینگ پویا و قابلیت‌های تعاملی بسازید و تجربه کاربری بهتری ارائه دهید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6
2م شهریور 1403

توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6

مطالعه بیشتر
مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها
30م مهر 1403

مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
24م آذر 1404

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
28م مهر 1403

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت
22م مرداد 1402

آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت

مطالعه بیشتر
آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع
2م آبان 1403

آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع

مطالعه بیشتر
آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code
21م خرداد 1405

آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code

مطالعه بیشتر
مدیریت رویدادها در جاوا اسکریپت: اضافه و حذف Event Listeners - آموزش جامع با مثال‌ها
2م آبان 1403

مدیریت رویدادها در جاوا اسکریپت: اضافه و حذف Event Listeners - آموزش جامع با مثال‌ها

مطالعه بیشتر
آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
23م مرداد 1402

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو
21م مرداد 1402

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

مطالعه بیشتر
آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403

آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل

مطالعه بیشتر
آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها
1م آبان 1403

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد