Vue $emit() পদ্ধতি
আপনার নিজস্ব Vue সার্ভার পান বোতামটি ক্লিক করার সময় প্যারেন্ট কম্পোনেন্টে একটি কাস্টম ইভেন্ট ফায়ার করতে $emit() পদ্ধতি ব্যবহার করে।
<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() পদ্ধতি ব্যবহার করে 'মেসেজ-প্রেরিত' কাস্টম ইভেন্টের সাথে মূল উপাদানে একটি বার্তা পাঠান।
<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() পদ্ধতি ব্যবহার করে প্যারেন্ট কম্পোনেন্টে প্রোডাক্টের নাম এবং রেটিং পাস করুন।
<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 বিকল্পটি ব্যবহার করে। এটি প্রয়োজনীয় নয়, তবে এটি পঠনযোগ্যতা উন্নত করে।
<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 এর অন্তর্নির্মিত পদ্ধতিটি কী ব্যবহার করা হয়?