Vue.js
কম্পোনেন্ট ইনস্ট্যান্সে Vue-তে বস্তুর একটি সংগ্রহ রয়েছে।
| অর্থ | ব্যাখ্যা |
|---|---|
| $attrs | কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের প্রতিনিধিত্ব করে। |
| $data | একটি Vue উদাহরণের ডেটা অংশে সংরক্ষিত বৈশিষ্ট্যগুলিকে প্রতিনিধিত্ব করে। |
| $el | Vue কম্পোনেন্টের রুট DOM নোডের প্রতিনিধিত্ব করে। |
| $parent | মূল উপাদানের একটি Vue উদাহরণ প্রতিনিধিত্ব করে। |
| $props | রিসিভিং কম্পোনেন্টে ঘোষিত প্রপস রিপ্রেজেন্ট করে। |
| $refs | বিল্ট-ইন 'রেফ' অ্যাট্রিবিউট দিয়ে চিহ্নিত DOM উপাদানগুলিকে প্রতিনিধিত্ব করে। |
| $root | সম্পূর্ণ Vue অ্যাপ্লিকেশনের রুট উপাদানের Vue উদাহরণ প্রতিনিধিত্ব করে। |
| $slots | মূল উপাদান দ্বারা প্রদত্ত স্লটগুলি নির্দেশ করে৷ |
অধঃপতন গুণাবলী এবং ঘটনা শ্রোতা
this.$attrs.class this.$attrs.style this.$attrs.onClick
উপাদান তথ্য বৈশিষ্ট্য
ডেটা() { ফিরে বার্তা: 'হ্যালো' } } // অ্যাক্সেস: this.message // অথবা এই.$data.message
রুট DOM নোড
// উপাদানটির মূল উপাদান: এই।$el // DOM অপারেশন: this.$el.querySelector() এই।$el.style.backgroundColor
অভিভাবক উপাদান উদাহরণ
// পিতামাতার ডেটা অ্যাক্সেস: এই।$parent.parentData // অভিভাবকদের কল করার পদ্ধতি: এই।$parent.parentMethod()
গৃহীত প্রপস এস
প্রপস: ['শিরোনাম', 'গণনা'] // অ্যাক্সেস: এই শিরোনাম // অথবা এই.$props.title এই.$props.count
DOM উপাদানের উল্লেখ
<input ref="myInput"> // অ্যাক্সেস: এই.$refs.myInput এই.$refs.myInput.focus()
মূল উপাদান উদাহরণ
// সম্পূর্ণ অ্যাপ্লিকেশনের মূল: এই.$ root // বিশ্বব্যাপী রাষ্ট্র পরিচালনা: এই.$root.globalState এই।$root.globalMethod()
পিতামাতার দ্বারা প্রদত্ত স্লট
// স্লট পরীক্ষা করতে: যদি (this.$slots.default) { // একটি ডিফল্ট স্লট আছে } যদি (this.$slots.header) { // হেডার স্লট উপলব্ধ }
কম্পোনেন্ট ইনস্ট্যান্সে Vue-তে পদ্ধতির একটি সংগ্রহ রয়েছে, যা 'এই' কীওয়ার্ড দিয়ে অ্যাক্সেস করা যেতে পারে।
| পদ্ধতি | ব্যাখ্যা |
|---|---|
| $emit() | একটি কাস্টম ইভেন্ট ফায়ার করে যা মূল উপাদানকে অবহিত করতে ব্যবহৃত হয় |
| $forceUpdate() | Vue ফোর্স রি-রেন্ডারিং অ্যাপ্লিকেশন |
| $nextTick() | বর্তমান Vue কম্পোনেন্টের DOM আপডেট চক্র সম্পূর্ণ হওয়ার জন্য অপেক্ষা করছে |
| $watch() | পর্যবেক্ষক তৈরি করতে ব্যবহৃত হয় এবং একটি স্টপ ফাংশন প্রদান করে যা আমরা প্রহরীকে থামাতে ব্যবহার করতে পারি |
অভিভাবকদের সাথে যোগাযোগ
// শিশু উপাদানে: পদ্ধতি: { sendData() { this.$emit('কাস্টম-ইভেন্ট', ডেটা) } } // মূল উপাদানে: <শিশু-উপাদান @custom-event="handleEvent" />
ফোর্স রি-রেন্ডারিং
// উপাদানটিকে পুনরায় রেন্ডার করতে বাধ্য করতে: এই।$forceUpdate() // ব্যবহার: পদ্ধতি: { forceRender() { // প্রতিক্রিয়াশীলতা সেটিংস এড়াতে এই।$forceUpdate() } }
শুধুমাত্র শেষ অবলম্বন হিসাবে $forceUpdate() ব্যবহার করুন। প্রায়ই ভাল নকশা এটি এড়িয়ে চলে।
DOM আপডেটের জন্য অপেক্ষা করা হচ্ছে
// DOM আপডেটের পরে: this.someData = 'নতুন মান' এই।$nextTick(() => { // DOM এখন আপডেট করা হয়েছে this.$refs.myElement.focus() }) // প্রতিশ্রুতি সিনট্যাক্স: এটির জন্য অপেক্ষা করুন।$nextTick() // DOM আপডেট করা হয়েছে
ট্র্যাকিং তথ্য পরিবর্তন
// প্রহরী তৈরি করুন: const unwatch = this.$watch( 'কাউন্টার', (newVal, oldVal) => { console.log(`কাউন্টার পরিবর্তিত হয়েছে: ${oldVal} → ${newVal}`) } ) // প্রহরী বন্ধ করুন: উন্মোচন() // তাৎক্ষণিক মনিটর: এই।$ঘড়ি( 'user.name', (নতুন নাম) => { console.log(`নাম পরিবর্তিত হয়েছে: ${newName}`) }, { অবিলম্বে: সত্য } )
// ChildComponent.vue
<template>
<button @click="notifyParent">
Click Me
</button>
</template>
<script>
export default {
methods: {
notifyParent() {
this.$emit('button-clicked', {
timestamp: new Date(),
message: 'Button was clicked'
})
}
}
}
</script>
// ParentComponent.vue
<template>
<child-component
@button-clicked="handleButtonClick"
/>
</template>
<script>
export default {
methods: {
handleButtonClick(eventData) {
console.log('Child button clicked:', eventData)
}
}
}
</script>
<টেমপ্লেট> <div> <input ref="emailInput" v-model="email"> <button @click="focusInput">ফোকাস ইনপুট</button> </div> </ টেমপ্লেট> <script> রপ্তানি ডিফল্ট { ডেটা() { ফিরে ইমেইল: '' } }, পদ্ধতি: { ফোকাসইনপুট() { // $refs এর মাধ্যমে DOM উপাদানে অ্যাক্সেস this.$refs.emailInput.focus() this.$refs.emailInput.select() } }, মাউন্ট করা() { // কম্পোনেন্ট মাউন্ট করা হলে স্বয়ংক্রিয়ভাবে ফোকাস করতে এই।$nextTick(() => { this.$refs.emailInput.focus() }) } } </script>
ব্যায়াম দিয়ে নিজেকে পরীক্ষা করুন