Custom Events এবং Data Binding

Polymer Elements তৈরি - পলিমার ফ্রেমওয়ার্ক (Polymer Framework) - Web Development

253

Polymer Framework-এ Custom Events এবং Data Binding দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ওয়েব অ্যাপ্লিকেশনের কার্যকারিতা এবং কার্যক্ষমতা বৃদ্ধি করতে সহায়তা করে। আসুন, এগুলির সম্পর্কে বিস্তারিত জানি:

১. Custom Events:

Polymer-এ Custom Events ব্যবহারের মাধ্যমে আপনি কাস্টম ইভেন্ট তৈরি করতে পারেন যা আপনার কাস্টম উপাদান (Custom Elements) বা কম্পোনেন্টগুলির মধ্যে যোগাযোগের সুবিধা দেয়। এটি আপনাকে আপনার অ্যাপ্লিকেশনের ইন্টারঅ্যাকশন আরও কার্যকরী এবং নিয়ন্ত্রিত করার সুযোগ দেয়।

Custom Events কিভাবে কাজ করে:

Polymer Framework-এ Custom Event তৈরি করতে fire() মেথড ব্যবহার করা হয়। এটি কাস্টম ইভেন্ট ট্রিগার করতে এবং তার সঙ্গে যুক্ত ডাটা পাস করতে সহায়তা করে। উদাহরণস্বরূপ:

<dom-module id="custom-button">
  <template>
    <button on-click="handleClick">Click Me</button>
  </template>
  <script>
    Polymer({
      is: 'custom-button',
      
      handleClick: function() {
        // Custom event তৈরি করা
        this.fire('button-clicked', { message: 'Button was clicked!' });
      }
    });
  </script>
</dom-module>

এখানে, handleClick() মেথডটি button-clicked নামক একটি কাস্টম ইভেন্ট ট্রিগার করছে। এই ইভেন্টে একটি ডাটা (message) পাস করা হচ্ছে। এরপর আপনি এই কাস্টম ইভেন্টটি অন্য একটি উপাদানে শুনতে (listen) পারেন:

<custom-button on-button-clicked="handleButtonClicked"></custom-button>
<script>
  function handleButtonClicked(event) {
    console.log(event.detail.message);  // Output: Button was clicked!
  }
</script>

এখানে, on-button-clicked ইভেন্টটি সুনাম (listen) করছে এবং যখন কাস্টম বাটনটি ক্লিক হবে, তখন handleButtonClicked() মেথডটি কল হবে এবং ইভেন্টের ডিটেইল (ডাটা) পাওয়া যাবে।

২. Data Binding:

Polymer Framework-এ Data Binding এমন একটি বৈশিষ্ট্য যা স্বয়ংক্রিয়ভাবে আপনার UI এবং ডাটা মডেলের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে। অর্থাৎ, যখন ডাটা পরিবর্তিত হয়, তখন UI-ও স্বয়ংক্রিয়ভাবে পরিবর্তিত হয় এবং এর বিপরীতটিও ঘটে। Polymer দুটি ধরনের ডাটা বাইন্ডিং সাপোর্ট করে: One-way Binding এবং Two-way Binding

One-way Data Binding:

এটি হল একমুখী ডাটা বাইন্ডিং, যেখানে ডাটা মডেল থেকে ভিউ (UI) পর্যন্ত ডাটা প্রবাহিত হয়, কিন্তু UI থেকে ডাটাতে কোনো পরিবর্তন হয় না। এটি সাধারণত নিচের মতো হয়:

<dom-module id="data-binding-example">
  <template>
    <p>{{message}}</p> <!-- message এখানে বাইন্ডিং হবে -->
  </template>
  <script>
    Polymer({
      is: 'data-binding-example',
      properties: {
        message: {
          type: String,
          value: 'Hello, Polymer!'
        }
      }
    });
  </script>
</dom-module>

এখানে, message প্রপার্টি ডাটা মডেল থেকে HTML টেমপ্লেটের মধ্যে প্রদর্শিত হবে। যখন message পরিবর্তিত হবে, তখন UI-তেও তা স্বয়ংক্রিয়ভাবে আপডেট হবে।

Two-way Data Binding:

এটি দ্বিমুখী ডাটা বাইন্ডিং, যেখানে ডাটা মডেল এবং UI একে অপরের সাথে যোগাযোগ করে। পরিবর্তন ডাটা মডেলে অথবা UI তে যেখানেই হয়, তা স্বয়ংক্রিয়ভাবে অপরটি সিঙ্ক্রোনাইজ করে। এটি Polymer-এ {{}} এর মাধ্যমে কাজ করে।

<dom-module id="two-way-binding-example">
  <template>
    <input value="{{inputValue::input}}">
    <p>You typed: {{inputValue}}</p> <!--  Input value এবং p tag উভয়ই সিঙ্ক্রোনাইজ -->
  </template>
  <script>
    Polymer({
      is: 'two-way-binding-example',
      properties: {
        inputValue: {
          type: String,
          value: ''
        }
      }
    });
  </script>
</dom-module>

এখানে, inputValue প্রপার্টি একটি ইনপুট ফিল্ডের সাথে বাইন্ড করা হয়েছে। ব্যবহারকারী ইনপুট পরিবর্তন করলে inputValue আপডেট হবে, এবং সেই পরিবর্তন UI তে (p ট্যাগে) দেখানো হবে। এর বিপরীতে, যদি inputValue প্রপার্টি প্রোগ্রাম্যাটিকভাবে পরিবর্তিত হয়, ইনপুট ফিল্ডটিও আপডেট হবে।

  • Custom Events Polymer-এ কাস্টম ইভেন্ট তৈরি এবং শেয়ার করার জন্য ব্যবহৃত হয়। এটি আপনার কাস্টম উপাদানগুলির মধ্যে কার্যকরী ইন্টারঅ্যাকশন নিশ্চিত করে।
  • Data Binding Polymer অ্যাপ্লিকেশনে UI এবং ডাটা মডেলের মধ্যে স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন প্রদান করে, যা উন্নত ব্যবহারকারীর অভিজ্ঞতা এবং কোডের সহজতা প্রদান করে।

এই বৈশিষ্ট্যগুলি Polymer Framework-কে একটি শক্তিশালী এবং সহজ ব্যবহারযোগ্য টুল বানায়, যা আধুনিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...