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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی
2م شهریور 1403

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

مطالعه بیشتر
معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن
28م شهریور 1402

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

مطالعه بیشتر
آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var
18م شهریور 1402

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

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

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

مطالعه بیشتر
استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی
23م آذر 1404

استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی

مطالعه بیشتر
آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها
2م آبان 1403

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها

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

راهنمای کامل لیست‌ها در HTML: آموزش انواع و اصول سئو

مطالعه بیشتر
آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال
23م آذر 1404

آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال

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

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

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

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

مطالعه بیشتر
استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی
11م آبان 1403

استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی

مطالعه بیشتر
آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
5م شهریور 1402

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

مطالعه بیشتر

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