Vue Component Instance

Vue.js

বস্তু

কম্পোনেন্ট ইনস্ট্যান্সে Vue-তে বস্তুর একটি সংগ্রহ রয়েছে।

অর্থ ব্যাখ্যা
$attrs কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের প্রতিনিধিত্ব করে।
$data একটি Vue উদাহরণের ডেটা অংশে সংরক্ষিত বৈশিষ্ট্যগুলিকে প্রতিনিধিত্ব করে।
$el Vue কম্পোনেন্টের রুট DOM নোডের প্রতিনিধিত্ব করে।
$parent মূল উপাদানের একটি Vue উদাহরণ প্রতিনিধিত্ব করে।
$props রিসিভিং কম্পোনেন্টে ঘোষিত প্রপস রিপ্রেজেন্ট করে।
$refs বিল্ট-ইন 'রেফ' অ্যাট্রিবিউট দিয়ে চিহ্নিত DOM উপাদানগুলিকে প্রতিনিধিত্ব করে।
$root সম্পূর্ণ Vue অ্যাপ্লিকেশনের রুট উপাদানের Vue উদাহরণ প্রতিনিধিত্ব করে।
$slots মূল উপাদান দ্বারা প্রদত্ত স্লটগুলি নির্দেশ করে৷

আইটেম বিস্তারিত বিবরণ

$attrs

অধঃপতন গুণাবলী এবং ঘটনা শ্রোতা

this.$attrs.class
this.$attrs.style
this.$attrs.onClick

$data

উপাদান তথ্য বৈশিষ্ট্য

ডেটা() { ফিরে বার্তা: 'হ্যালো' } } // অ্যাক্সেস: this.message // অথবা এই.$data.message

$el

রুট DOM নোড

// উপাদানটির মূল উপাদান: এই।$el // DOM অপারেশন: this.$el.querySelector() এই।$el.style.backgroundColor

$parent

অভিভাবক উপাদান উদাহরণ

// পিতামাতার ডেটা অ্যাক্সেস: এই।$parent.parentData // অভিভাবকদের কল করার পদ্ধতি: এই।$parent.parentMethod()

$props

গৃহীত প্রপস এস

প্রপস: ['শিরোনাম', 'গণনা'] // অ্যাক্সেস: এই শিরোনাম // অথবা এই.$props.title এই.$props.count

$refs

DOM উপাদানের উল্লেখ

<input ref="myInput"> // অ্যাক্সেস: এই.$refs.myInput এই.$refs.myInput.focus()

$root

মূল উপাদান উদাহরণ

// সম্পূর্ণ অ্যাপ্লিকেশনের মূল: এই.$ root // বিশ্বব্যাপী রাষ্ট্র পরিচালনা: এই.$root.globalState এই।$root.globalMethod()

$slots

পিতামাতার দ্বারা প্রদত্ত স্লট

// স্লট পরীক্ষা করতে: যদি (this.$slots.default) { // একটি ডিফল্ট স্লট আছে } যদি (this.$slots.header) { // হেডার স্লট উপলব্ধ }

পদ্ধতি

কম্পোনেন্ট ইনস্ট্যান্সে Vue-তে পদ্ধতির একটি সংগ্রহ রয়েছে, যা 'এই' কীওয়ার্ড দিয়ে অ্যাক্সেস করা যেতে পারে।

পদ্ধতি ব্যাখ্যা
$emit() একটি কাস্টম ইভেন্ট ফায়ার করে যা মূল উপাদানকে অবহিত করতে ব্যবহৃত হয়
$forceUpdate() Vue ফোর্স রি-রেন্ডারিং অ্যাপ্লিকেশন
$nextTick() বর্তমান Vue কম্পোনেন্টের DOM আপডেট চক্র সম্পূর্ণ হওয়ার জন্য অপেক্ষা করছে
$watch() পর্যবেক্ষক তৈরি করতে ব্যবহৃত হয় এবং একটি স্টপ ফাংশন প্রদান করে যা আমরা প্রহরীকে থামাতে ব্যবহার করতে পারি

পদ্ধতির বিস্তারিত বর্ণনা

$emit()

অভিভাবকদের সাথে যোগাযোগ

// শিশু উপাদানে: পদ্ধতি: { sendData() { this.$emit('কাস্টম-ইভেন্ট', ডেটা) } } // মূল উপাদানে: <শিশু-উপাদান @custom-event="handleEvent" />

$forceUpdate()

ফোর্স রি-রেন্ডারিং

// উপাদানটিকে পুনরায় রেন্ডার করতে বাধ্য করতে: এই।$forceUpdate() // ব্যবহার: পদ্ধতি: { forceRender() { // প্রতিক্রিয়াশীলতা সেটিংস এড়াতে এই।$forceUpdate() } }

⚠️সতর্কতা:

শুধুমাত্র শেষ অবলম্বন হিসাবে $forceUpdate() ব্যবহার করুন। প্রায়ই ভাল নকশা এটি এড়িয়ে চলে।

$nextTick()

DOM আপডেটের জন্য অপেক্ষা করা হচ্ছে

// DOM আপডেটের পরে: this.someData = 'নতুন মান' এই।$nextTick(() => { // DOM এখন আপডেট করা হয়েছে this.$refs.myElement.focus() }) // প্রতিশ্রুতি সিনট্যাক্স: এটির জন্য অপেক্ষা করুন।$nextTick() // DOM আপডেট করা হয়েছে

$watch()

ট্র্যাকিং তথ্য পরিবর্তন

// প্রহরী তৈরি করুন: const unwatch = this.$watch( 'কাউন্টার', (newVal, oldVal) => { console.log(`কাউন্টার পরিবর্তিত হয়েছে: ${oldVal} → ${newVal}`) } ) // প্রহরী বন্ধ করুন: উন্মোচন() // তাৎক্ষণিক মনিটর: এই।$ঘড়ি( 'user.name', (নতুন নাম) => { console.log(`নাম পরিবর্তিত হয়েছে: ${newName}`) }, { অবিলম্বে: সত্য } )

ব্যবহারিক উদাহরণ

1. $emit() এর সাথে পিতামাতা-সন্তানের যোগাযোগ

// 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>

2. $refs সহ DOM উপাদানগুলিতে অ্যাক্সেস

<টেমপ্লেট> <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>

ভিউ টিউটোরিয়াল

ব্যায়াম দিয়ে নিজেকে পরীক্ষা করুন

শিশু উপাদান থেকে পিতামাতার উপাদানে তথ্য প্রেরণ করতে কোন উপাদান ইভেন্ট পদ্ধতি ব্যবহার করা হয়?

$send()
✗ ভুল! $send() Vue-তে একটি উপাদান ইভেন্ট পদ্ধতি নয়
$parent()
✗ ভুল! $parent একটি বস্তু, একটি পদ্ধতি নয়, এবং পিতামাতার কাছে তথ্য পাঠাতে ব্যবহৃত হয় না
$emit()
✓ ঠিক আছে! চাইল্ড কম্পোনেন্ট থেকে প্যারেন্ট কম্পোনেন্টে তথ্য পাঠাতে কাস্টম ইভেন্ট ফায়ার করতে $emit() পদ্ধতি ব্যবহার করা হয়
$props()
✗ ভুল! $props একটি বস্তু, একটি পদ্ধতি নয়, এবং এটি পিতামাতার কাছ থেকে তথ্য গ্রহণ, প্রেরণ না করতে ব্যবহৃত হয়