Vue $attrs Object

Vue.js $attrs

Vue $attrs Object

উদাহরণ

আপনার নিজস্ব Vue সার্ভার পান

<p> ট্যাগে আইডি ফলব্যাক অ্যাট্রিবিউট সেট করতে $attrs অবজেক্ট ব্যবহার করে।

<template>
  <h3>Tigers</h3>
  <img src="/img_tiger_small.jpg" alt="tiger">
  <p v-bind="$attrs">Tigers eat meat and not plants, so they are called carnivores.</p>
</template>

নীচে আরো উদাহরণ দেখুন.

সংজ্ঞা এবং প্রয়োগ

$attrs অবজেক্ট কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের প্রতিনিধিত্ব করে।

যখন কোনো রুট এলিমেন্টকে কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের উত্তরাধিকারী হতে হয়, আমরা সেই উপাদানটিতে v-bind="$attrs" ব্যবহার করি।

শুধু পড়ুন

$attrs অবজেক্ট শুধুমাত্র পঠিত হয়। আপনি এটা পরিবর্তন করতে পারবেন না.

পচনশীল গুণাবলী

নন-প্রপস অ্যাট্রিবিউটগুলি কম্পোনেন্ট ট্যাগে সেট করা হয় এবং কম্পোনেন্টের রুট এলিমেন্টে পড়ে।

একাধিক মূল উপাদান

যদি উপাদানটিতে একাধিক রুট উপাদান থাকে, তাহলে কোন উপাদানটি নেস্টেড বৈশিষ্ট্যগুলি পাবে তা নির্দিষ্ট করতে আমরা $attrs অবজেক্ট ব্যবহার করি।

🎯গুরুত্বপূর্ণ নোট:

ফলিং অ্যাট্রিবিউট হল কম্পোনেন্ট ট্যাগে সেট করা অ্যাট্রিবিউট (প্রপস নয়), যা কম্পোনেন্টের রুট এলিমেন্টে পড়ে। যদি উপাদানটিতে একাধিক রুট উপাদান থাকে, তাহলে কোন উপাদানটি নেস্টেড বৈশিষ্ট্যগুলি পাবে তা নির্দিষ্ট করতে আমরা $attrs অবজেক্ট ব্যবহার করি। টিউটোরিয়ালে পচনশীল বৈশিষ্ট্য সম্পর্কে আরও জানুন।

আরো উদাহরণ

উদাহরণ 1

ডিফল্ট বৈশিষ্ট্য হল আইডি এবং শিরোনাম, এবং তাদের মান প্রদর্শন করতে $attrs অবজেক্ট ব্যবহার করে।

<template>
  <h3>Tigers</h3>
  <img src="/img_tiger_small.jpg" alt="tiger">
  <p v-bind="$attrs">Tigers eat meat and not plants, so they are called carnivores.</p>
  <hr>
  <p><strong>Below is the content of the $attrs object:</strong></p>
  <pre>{{ attrsObject }}</pre>
</template>

<script>
export default {
  data() {
    return {
      attrsObject: null
    }
  },
  mounted() {
    console.log(this.$attrs);
    this.attrsObject = this.$attrs;
  }
}
</script>

<style>
#pink {
  background-color: pink;
  border-radius: 15px;
  padding: 10px;
}
img {
  width: 100%;
  border-radius: 15px;
}
</style>

পিতামাতার আবেদন:

<tiger-component 
  id="pink"
  title="Tiger Information"
></tiger-component>

$attrs এর বিষয়বস্তু:

{
  "id": "pink",
  "title": "Tiger Information"
}

উদাহরণ 2

প্যারেন্ট এলিমেন্ট থেকে ইভেন্ট লিসেনার পেতে <img> ট্যাগে $attrs অবজেক্ট ব্যবহার করুন।

শিশু উপাদান (TigerComponent.vue):

<template>
  <h3>Toggle Image Size</h3>
  <p>Click the image to toggle the image size.</p>
  <img v-bind="$attrs" src="/img_tiger_small.jpg" class="imgSmall">
</template>

<style>
.imgSmall {
  width: 60%;
}
.imgLarge {
  width: 100%;
}
img {
  border-radius: 15px;
  cursor: pointer;
}
</style>

মূল উপাদান (App.vue):

<template>
  <tiger-component @click="toggleImageSize" />
</template>

<script>
export default {
  methods: {
    toggleImageSize(event) {
      const img = event.target;
      img.classList.toggle('imgSmall');
      img.classList.toggle('imgLarge');
    }
  }
}
</script>

🔗ইভেন্ট শ্রোতা বরাদ্দ:

এই উদাহরণে, প্যারেন্ট এলিমেন্ট থেকে @click ইভেন্ট লিসেনারকে $attrs এর মাধ্যমে চাইল্ড এলিমেন্টের <img> এলিমেন্ট অ্যাসাইন করা হয়েছে।

সাধারণ ব্যবহারের ক্ষেত্রে

একাধিক মূল উপাদান:একাধিক রুট উপাদান থাকলে নেস্টেড অ্যাট্রিবিউটগুলি পরিচালনা করতে
ইভেন্ট শ্রোতা:অভিভাবক থেকে শিশু উপাদানে ইভেন্ট শ্রোতাদের বিতরণ করা
CSS ক্লাস/আইডি:পিতামাতা থেকে শিশু উপাদান উপাদানগুলিতে ডিজাইনের বৈশিষ্ট্যগুলি প্রেরণ করা
ডেটা বৈশিষ্ট্য:পিতামাতা থেকে শিশু উপাদানগুলিতে ডেটা-* বৈশিষ্ট্যগুলি পাস করতে
প্রপস প্রতিস্থাপন:$attrs ব্যবহার করবেন না যেখানে প্রপ ব্যবহার করা উচিত

$attrs বনাম প্রপস তুলনা

বৈশিষ্ট্য $attrs প্রপস
উদ্দেশ্য অধঃপতনযোগ্য বৈশিষ্ট্য/ইভেন্ট কম্পোনেন্টে ডাটা পাঠাতে
লক্ষ্য করুন স্বয়ংক্রিয়ভাবে (বিজ্ঞাপন করার প্রয়োজন নেই) বিবৃতিতে এটি স্পষ্টভাবে বলা উচিত
পরিবর্তনশীলতা শুধু পড়ুন পিতামাতার দ্বারা পরিবর্তন করা যেতে পারে
টাইপ চেকিং না টাইপস্ক্রিপ্ট/স্বচ্ছ প্রকার
আবেদন v-bind="$attrs" :prop-name="value"

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

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

কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের প্রতিনিধিত্ব করতে কোন উপাদান ইভেন্ট অবজেক্ট ব্যবহার করা হয়?

$data
✗ ভুল! $data অবজেক্ট কম্পোনেন্ট ডেটা অ্যাট্রিবিউটের প্রতিনিধিত্ব করে, স্ট্যাটিক অ্যাট্রিবিউট নয়
$props
✗ ভুল! $props অবজেক্টটি প্রাপ্ত প্রপসকে বোঝায়, স্ট্যাটিক অ্যাট্রিবিউট নয়
$attrs
✓ ঠিক আছে! $attrs অবজেক্ট কম্পোনেন্ট ট্যাগে সেট করা স্ট্যাটিক অ্যাট্রিবিউট এবং ইভেন্ট শ্রোতাদের প্রতিনিধিত্ব করে
$slots
✗ ভুল! $slots অবজেক্টটি পিতামাতার দ্বারা প্রদত্ত স্লটগুলিকে বোঝায়, নেস্টেড বৈশিষ্ট্যগুলি নয়