Vue $emit() Method

Vue $emit() পদ্ধতি শিখুন

Vue $emit() পদ্ধতি

আপনার নিজস্ব Vue সার্ভার পান বোতামটি ক্লিক করার সময় প্যারেন্ট কম্পোনেন্টে একটি কাস্টম ইভেন্ট ফায়ার করতে $emit() পদ্ধতি ব্যবহার করে।
ChildComp.vue:
<template>
  <div>
    <h3>ChildComp.vue</h3>
    <p>Click the button to trigger the custom event up to the parent component using the $emit() method.</p>
    <button v-on:click="this.$emit('custom-event')">Trigger</button>
  </div>
</template>

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

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

অন্তর্নির্মিত $emit() পদ্ধতিটি একটি কাস্টম ইভেন্ট চালু করে যা মূল উপাদানের সাথে যোগাযোগ করতে ব্যবহার করা যেতে পারে।

যুক্তি ব্যাখ্যা
কাস্টম ইভেন্টের নাম ডিফল্ট এই প্রথম আর্গুমেন্ট হল কাস্টম ইভেন্টের নাম যা $emit() পদ্ধতির দ্বারা বহিস্কার করা হবে।
আরও যুক্তি ঐচ্ছিক। একটি কাস্টম ইভেন্ট সহ একটি পেলোড হিসাবে এক বা একাধিক আর্গুমেন্ট পাঠানো যেতে পারে। (নীচে উদাহরণ 1 এবং 2 দেখুন।)

ইমিট বিকল্পটি উপাদানটি কী নির্গত করে তা নথিভুক্ত করতে ব্যবহার করা যেতে পারে। emits বিকল্পটি ব্যবহার করলে পঠনযোগ্যতা উন্নত হয়, কিন্তু প্রয়োজন হয় না। (নীচের উদাহরণ 3 দেখুন।)

প্রপগুলি বিপরীত দিকে যোগাযোগ করতে ব্যবহৃত হয়: পিতামাতার উপাদান থেকে শিশু উপাদান পর্যন্ত। টিউটোরিয়ালে প্রপস সম্পর্কে আরও পড়ুন।

আরো উদাহরণ

উদাহরণ 1

$emit() পদ্ধতি ব্যবহার করে 'মেসেজ-প্রেরিত' কাস্টম ইভেন্টের সাথে মূল উপাদানে একটি বার্তা পাঠান।

ChildComp.vue:
<template>
  <div>
    <h3>ChildComp.vue</h3>
    <p>Write something, and send the message up to the parent component using the $emit() method.</p>
    <input type="text" v-model="message" placeholder="write something..">
    <button v-on:click="send">Send</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: null
    }
  },
  methods: {
    send() {
      this.$emit('message-sent',this.message);
    }
  }
}
</script>

<style scoped>
div {
  border: solid black 1px;
  padding: 10px;
  max-width: 350px;
  margin-top: 20px;
}
input {
  display: block;
  margin-bottom: 15px;
}
</style>

উদাহরণ 2

$emit() পদ্ধতি ব্যবহার করে প্যারেন্ট কম্পোনেন্টে প্রোডাক্টের নাম এবং রেটিং পাস করুন।

ChildComp.vue:
<template>
  <div>
    <h3>ChildComp.vue</h3>
    <p>Rate a product:</p>
    <input type="text" v-model="productName" placeholder="Product name.." ref="inpName">
    <input type="number" v-model="productRating" placeholder="Rating 1 to 10..">
    <button v-on:click="send">Register</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      productName: null,
      productRating: null
    }
  },
  methods: {
    send() {
      this.$emit('message-sent',this.productName,this.productRating);
      this.productName = null;
      this.productRating = null;
      this.$refs.inpName.focus();
    }
  },
  mounted() {
    this.$refs.inpName.focus();
  }
}
</script>

<style scoped>
div {
  border: solid black 1px;
  padding: 10px;
  max-width: 350px;
  margin-top: 20px;
}
input {
  display: block;
  margin-bottom: 15px;
}
</style>

উদাহরণ 3

$emit() পদ্ধতিতে উপাদানটি কী নির্গত করে তা নথিভুক্ত করতে emits বিকল্পটি ব্যবহার করে। এটি প্রয়োজনীয় নয়, তবে এটি পঠনযোগ্যতা উন্নত করে।

ChildComp.vue:
<template>
  <div>
    <h3>ChildComp.vue</h3>
    <p>Click the button to trigger the custom event up to the parent component using the $emit() method.</p>
    <button v-on:click="this.$emit('custom-event')">Trigger</button>
  </div>
</template>

<script>
export default {
  emits: ['custom-event']
}
</script>

<style scoped>
div {
  border: solid black 1px;
  padding: 10px;
  max-width: 350px;
  margin-top: 20px;
}
</style>

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

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

প্রশিক্ষণ:

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

$on()
✗ ভুল! $on() পদ্ধতিটি ইভেন্টগুলি শোনার জন্য ব্যবহার করা হয়, তাদের ট্রিগার করার জন্য নয়
$props()
✗ ভুল! $props() পদ্ধতিটি প্রপস অ্যাক্সেস করতে ব্যবহৃত হয়, ইভেন্ট ট্রিগার করতে নয়
$emit()
✓ ঠিক আছে! $emit() পদ্ধতিটি মূল উপাদানের জন্য কাস্টম ইভেন্টগুলি ট্রিগার করতে ব্যবহৃত হয়
$trigger()
✗ ভুল! Vue-তে বিল্ট-ইন $trigger() পদ্ধতি নেই