Data Binding এবং Two-way Binding

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Models এবং Data Binding |
1

ExtJS একটি শক্তিশালী ফ্রেমওয়ার্ক যা Data Binding এর মাধ্যমে ডেটা এবং UI-এর মধ্যে একে অপরের সাথে সংযোগ স্থাপন করতে সক্ষম। ডেটা বাইন্ডিং ব্যবহার করে, আপনি UI এবং ডেটার মধ্যে একটি স্বয়ংক্রিয় সম্পর্ক তৈরি করতে পারেন, যাতে UI পরিবর্তিত হলে ডেটাও আপডেট হয় এবং ডেটা পরিবর্তিত হলে UI আপডেট হয়। Two-way binding এই সম্পর্কের উন্নত একটি ফিচার যা উভয় দিক থেকে ডেটা পরিবর্তনের জন্য ব্যবহৃত হয়।

১. Data Binding

Data Binding হলো একটি পদ্ধতি যেখানে ডেটা (যেমন, মডেল) এবং UI কম্পোনেন্টের মধ্যে একটি সম্পর্ক স্থাপন করা হয়, যাতে একটি পরিবর্তন অপরটিকে স্বয়ংক্রিয়ভাবে আপডেট করে।

ExtJS তে Data Binding প্রধানত মডেল এবং ভিউ কম্পোনেন্টের মধ্যে কাজ করে। যখন মডেল (যেমন, একটি স্টোর বা মডেল) আপডেট হয়, তখন ভিউ (যেমন, গ্রিড, ফর্ম, বা প্যানেল) সেই আপডেটগুলি রিফ্লেক্ট করে এবং এটি UI-তে স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়।

উদাহরণ: এক-দিকনির্দেশক ডেটা বাইন্ডিং

Ext.define('MyApp.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int' },
        { name: 'name', type: 'string' },
        { name: 'email', type: 'string' }
    ]
});

Ext.create('MyApp.model.User', {
    id: 1,
    name: 'John Doe',
    email: 'john.doe@example.com'
});

Ext.create('Ext.form.Panel', {
    title: 'User Information',
    items: [{
        xtype: 'textfield',
        fieldLabel: 'Name',
        bind: '{name}' // মডেল থেকে ডেটা বাইনড করা হচ্ছে
    }],
    renderTo: Ext.getBody()
});

এখানে, bind: '{name}' ব্যবহার করে textfield UI কম্পোনেন্টটিকে মডেলের name ফিল্ডের সাথে বাইনড করা হয়েছে। যখন মডেলটির name পরিবর্তিত হবে, তখন UI-তে এটি স্বয়ংক্রিয়ভাবে আপডেট হবে।


২. Two-way Binding

Two-way Data Binding একটি শক্তিশালী বৈশিষ্ট্য যা UI এবং ডেটার মধ্যে দুটি দিকনির্দেশক সম্পর্ক তৈরি করে। এর মানে হল যে, UI-তে যে কোনো পরিবর্তন হবে, সেটি মডেল (ডেটা) আপডেট করবে এবং মডেল (ডেটা) পরিবর্তন হলে UI-তে সেটি প্রতিফলিত হবে।

ExtJS তে Two-way Binding কার্যকর করার জন্য bind ব্যবহার করা হয়। এই ফিচারের মাধ্যমে, ব্যবহারকারীর ইনপুট সরাসরি মডেল ডেটার সাথে সংযুক্ত হয় এবং ডেটার পরিবর্তন UI-তে প্রতিফলিত হয়।

উদাহরণ: Two-way Data Binding

Ext.define('MyApp.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int' },
        { name: 'name', type: 'string' },
        { name: 'email', type: 'string' }
    ]
});

var user = Ext.create('MyApp.model.User', {
    id: 1,
    name: 'John Doe',
    email: 'john.doe@example.com'
});

Ext.create('Ext.form.Panel', {
    title: 'User Information',
    items: [{
        xtype: 'textfield',
        fieldLabel: 'Name',
        bind: '{user.name}' // Two-way binding
    }],
    viewModel: {
        data: {
            user: user // মডেলকে ভিউমডেল এ যুক্ত করা
        }
    },
    renderTo: Ext.getBody()
});

এখানে, bind: '{user.name}' ব্যবহার করা হয়েছে, যা name ফিল্ডে two-way binding সেট করে। যখন ইউজার ফর্মের name ফিল্ডে কোনো পরিবর্তন করবেন, এটি মডেল (user) এর name ফিল্ডে আপডেট হবে এবং মডেলের name ফিল্ডে কোনো পরিবর্তন হলে UI-তে তা স্বয়ংক্রিয়ভাবে আপডেট হবে।


Data Binding এর প্রধান বৈশিষ্ট্য

  1. এক-দিকনির্দেশক বাইনডিং (One-way binding):
    • মডেল থেকে UI তে ডেটা প্রবাহিত হয়। মডেল আপডেট করলে UI-তে তা প্রদর্শিত হবে।
    • bind: '{modelField}' ব্যবহৃত হয়।
  2. দ্বি-দিকনির্দেশক বাইনডিং (Two-way binding):
    • UI থেকে মডেলে এবং মডেল থেকে UI তে ডেটার আপডেট একসাথে ঘটে। ইউজার UI তে কিছু পরিবর্তন করলে, এটি মডেলে আপডেট হয়ে যাবে, এবং মডেল থেকে ডেটা পরিবর্তিত হলে UI তে তা প্রতিফলিত হবে।
    • bind: '{modelField}' ব্যবহৃত হয়।

ExtJS Data Binding এর ব্যবহারিক সুবিধা

  • এপ্লিকেশন ম্যানেজমেন্ট সহজ: ডেটা এবং UI-এর মধ্যে সোজাসুজি সম্পর্ক তৈরি হয়, যা কোড কমপ্লেক্সিটি কমায়।
  • ডেটা আপডেট করার সহজ পদ্ধতি: মডেল পরিবর্তন হলেই UI আপডেট হয় এবং UI পরিবর্তন হলে মডেল আপডেট হয়, যা ইউজার ইন্টারঅ্যাকশনের জন্য কার্যকর।
  • ইন্টিগ্রেটেড ফর্ম হ্যান্ডলিং: ফর্মের ডেটা সহজেই মডেল বা স্টোরের সাথে সিঙ্ক্রোনাইজ করা যায়।
  • UI রিফ্রেশ এবং ইনপুট ভ্যালিডেশন: ইউজারের ইনপুট এবং UI আপডেট সহজভাবে পরিচালনা করা যায়।

সারাংশ

  • Data Binding ExtJS এ ডেটা এবং UI এর মধ্যে একটি সম্পর্ক তৈরি করে, যাতে একে অপরের সাথে আপডেট হয়।
  • One-way Binding: মডেল থেকে UI তে ডেটা প্রবাহিত হয়।
  • Two-way Binding: UI এবং মডেল উভয়ই একে অপরকে আপডেট করতে সক্ষম হয়।

ExtJS এর Data Binding এবং Two-way Binding ডেভেলপারদের কোডের জটিলতা কমাতে এবং ডেটা ম্যানেজমেন্টে সুবিধা দেয়, বিশেষ করে ডেটা এবং ইউজার ইন্টারফেসের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখতে।

Content added By
Promotion