Vue.js এর দুটি মৌলিক ধারণা হল Vue ইনস্ট্যান্স এবং ডেটা বাইন্ডিং। এই দুটি ধারণা একটি Vue অ্যাপ্লিকেশন তৈরি এবং পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ। এখানে আমরা এগুলোর মূল বিষয় এবং কিভাবে এগুলো কাজ করে তা ব্যাখ্যা করব।
১. Vue ইনস্ট্যান্স
Vue ইনস্ট্যান্স হলো Vue.js অ্যাপ্লিকেশনের মূল উপাদান। এটি একটি নতুন Vue অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয় এবং অ্যাপের সমস্ত কনফিগারেশন এবং ডেটা হ্যান্ডলিং এর জন্য দায়ী। Vue ইনস্ট্যান্সের মধ্যে রয়েছে সমস্ত কোড এবং সেটিংস যা অ্যাপের বেসিক কার্যকারিতা পরিচালনা করে।
Vue ইনস্ট্যান্স তৈরি করা:
Vue ইনস্ট্যান্স তৈরির জন্য আপনাকে Vue কনস্ট্রাক্টর ব্যবহার করতে হবে। নিচে একটি সাধারণ Vue ইনস্ট্যান্স তৈরির উদাহরণ দেওয়া হলো:
// main.js বা আপনার স্ক্রিপ্ট ফাইলে
new Vue({
el: '#app', // DOM এলিমেন্টের সাথে সংযোগ স্থাপন
data: {
message: 'Hello, Vue!' // ডেটা প্রপার্টি
}
});
এই উদাহরণে:
el: এটি Vue ইনস্ট্যান্সকে DOM এর একটি নির্দিষ্ট এলিমেন্টের সাথে সংযোগ করে। এখানে, Vue ইনস্ট্যান্সটিid="app"এর সাথে যুক্ত হবে।data: এটি একটি অবজেক্ট যেখানে আপনি অ্যাপের সমস্ত ডেটা সংরক্ষণ করবেন। এখানে একটি প্রপার্টিmessageরয়েছে, যার মান'Hello, Vue!'।
Vue ইনস্ট্যান্স তৈরি হওয়ার পর, আপনি DOM-এর মধ্যে Vue এর ডেটা ব্যবহার করতে পারবেন।
২. ডেটা বাইন্ডিং
ডেটা বাইন্ডিং হল Vue.js এর একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে ডেটা এবং UI এর মধ্যে যোগাযোগ তৈরি করতে সহায়তা করে। Vue.js এর মাধ্যমে আপনি সহজেই ডেটাকে HTML এলিমেন্টে বাইন্ড করতে পারবেন, যাতে ডেটা পরিবর্তিত হলে UI স্বয়ংক্রিয়ভাবে আপডেট হয়।
Vue.js দুই ধরনের ডেটা বাইন্ডিং সমর্থন করে:
২.১. ইন্টারপোলেশন (Text Binding)
এটি HTML এ {{ }} এর মাধ্যমে ডেটা বাইন্ডিং করা হয়। আপনি Vue ইনস্ট্যান্সের data থেকে ডেটা অ্যাক্সেস করতে পারবেন এবং তা HTML ট্যাগে প্রদর্শন করতে পারবেন।
<div id="app">
<p>{{ message }}</p> <!-- message ডেটা প্রপার্টি এখানে বাইন্ড করা হয়েছে -->
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello, Vue!'
}
});
</script>
এখানে, {{ message }} হল ডেটা বাইন্ডিং। যখন message এর মান পরিবর্তিত হবে, তখন Vue.js তা স্বয়ংক্রিয়ভাবে DOM-এ আপডেট করবে।
২.২. অ্যাট্রিবিউট বাইন্ডিং (Attribute Binding)
আপনি HTML অ্যাট্রিবিউটগুলির জন্যও ডেটা বাইন্ডিং ব্যবহার করতে পারেন, যেমন href, src, class, style, ইত্যাদি। এই ধরনের বাইন্ডিংয়ের জন্য v-bind ডিরেকটিভ ব্যবহার করা হয়।
<div id="app">
<a v-bind:href="url">Click me!</a> <!-- v-bind দিয়ে href অ্যাট্রিবিউটে বাইন্ডিং -->
</div>
<script>
new Vue({
el: '#app',
data: {
url: 'https://vuejs.org'
}
});
</script>
এখানে v-bind:href="url" নির্দেশ করছে যে href অ্যাট্রিবিউটটি Vue ইনস্ট্যান্সের url ডেটা প্রপার্টির মান দ্বারা কনফিগার করা হবে।
২.৩. ইভেন্ট বাইন্ডিং (Event Binding)
Vue.js এ ইভেন্ট বাইন্ডিং করতে v-on ডিরেকটিভ ব্যবহার করা হয়। এটি DOM ইভেন্ট (যেমন click, keyup, change) কে Vue এর মেথড বা ফাংশনের সাথে যুক্ত করে।
<div id="app">
<button v-on:click="changeMessage">Click me!</button>
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello, Vue!'
},
methods: {
changeMessage: function() {
this.message = 'You clicked the button!';
}
}
});
</script>
এখানে, v-on:click="changeMessage" ইভেন্ট বাইন্ডিং ব্যবহার করা হয়েছে, যা click ইভেন্টের সময় changeMessage মেথড কল করবে এবং message ডেটা প্রপার্টি পরিবর্তন করবে।
৩. ওয়াচার (Watchers) এবং কম্পিউটেড প্রপার্টি
Vue.js এর ডেটা বাইন্ডিংয়ের আরো দুটি গুরুত্বপূর্ণ ফিচার হল ওয়াচার এবং কম্পিউটেড প্রপার্টি। এগুলো ডেটা পরিবর্তনের উপর নির্ভর করে UI আপডেট করতে সাহায্য করে।
কম্পিউটেড প্রপার্টি: এগুলি ডেটার উপর ভিত্তি করে মান গণনা করে এবং ডেটা পরিবর্তন হলে শুধুমাত্র নির্দিষ্ট প্রপার্টি রিফ্রেশ হয়।
computed: { reversedMessage: function() { return this.message.split('').reverse().join(''); } }ওয়াচার: এই ফিচারটি আপনার ডেটার উপর নজর রাখে এবং যখন ডেটার মান পরিবর্তিত হয়, তখন নির্দিষ্ট কাজটি সম্পন্ন করে।
watch: { message: function(newVal, oldVal) { console.log(`Message changed from "${oldVal}" to "${newVal}"`); } }
সারাংশ
- Vue ইনস্ট্যান্স হলো Vue অ্যাপ্লিকেশনের মূল ভিত্তি যা DOM এবং ডেটাকে সংযুক্ত করে।
- ডেটা বাইন্ডিং আপনাকে HTML এবং Vue ডেটা এর মধ্যে একে অপরের সাথে ইন্টারঅ্যাকশন করার সুবিধা দেয়।
- ইন্টারপোলেশন, অ্যাট্রিবিউট বাইন্ডিং, এবং ইভেন্ট বাইন্ডিং হল Vue.js এ ডেটা বাইন্ডিংয়ের কিছু সাধারণ পদ্ধতি।
- কম্পিউটেড প্রপার্টি এবং ওয়াচার ডেটার পরিবর্তনের ওপর নির্ভর করে UI আপডেট করতে ব্যবহৃত হয়।
এগুলো Vue.js অ্যাপ্লিকেশন তৈরি এবং ডেটা পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ এবং এগুলোর মাধ্যমে আপনি সহজেই ডায়নামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Read more