Vue-এ কম্পোনেন্ট ডেটা রিঅ্যাক্টিভ সম্পাদনা
এখন আসুন আমাদের চাইল্ড কম্পোনেন্টগুলির ডেটা সম্পাদনা বাস্তবায়ন করি।
প্রথমে, প্যারেন্ট কম্পোনেন্টে এর id দ্বারা ব্যবহারকারী পরিবর্তন করার একটি পদ্ধতি তৈরি করি:
methods: {
change(id, name, surn) {
this.users = this.users.map((user) => {
if (user.id === id) {
user.name = name;
user.surn = surn;
}
return user;
});
}
}
এগুলিকে নাম, উপাধি, id এবং পরিবর্তন করার পদ্ধতি প্যারামিটার হিসেবে প্রেরণ করে লুপে কম্পোনেন্টগুলি তৈরি করি:
<template>
<User
v-for ="user in users"
:id ="user.id"
:name ="user.name"
:surn ="user.surn"
:key ="user.id"
@change="change"
/>
</template>
চাইল্ড কম্পোনেন্টের সেটআপে emits-এ নির্গত ইভেন্টটি সংজ্ঞায়িত করি:
props: {
id: Number,
name: String,
surn: String,
},
emits: ['change'],
এখন চাইল্ড কম্পোনেন্টে একটি প্রপার্টি তৈরি করি যা কম্পোনেন্টের মোড নির্ধারণ করবে, প্রদর্শন বা সম্পাদনা:
data() {
return {
isEdit: false,
}
}
সম্পাদনার জন্য ইনপুটগুলির কাজ সমর্থন করার জন্য প্রপার্টিগুলিও তৈরি করি:
data() {
return {
isEdit: false,
newName: '',
newSurn: '',
}
}
এই প্রপার্টিগুলির প্রাথমিক মান যাতে প্রপ্স থেকে নেওয়া হয় তা নিশ্চিত করি:
data() {
return {
isEdit: false,
newName: this.name,
newSurn: this.surn,
}
}
একটি পদ্ধতি তৈরি করি যা সম্পাদনা মোড চালু করবে:
methods: {
edit() {
this.isEdit = true;
}
}
একটি পদ্ধতি তৈরি করি যা সম্পাদিত ডেটা সংরক্ষণ করবে, একই সাথে সম্পাদনা মোড বন্ধ করবে:
methods: {
save() {
this.isEdit = false;
this.$emit('change', this.id, this.newName, this.newSurn);
}
}
চাইল্ড কম্পোনেন্টের টেমপ্লেট তৈরি করি:
<template>
<template v-if="!isEdit">
{{ name }}
{{ surn }}
<button @click="edit">
edit
</button>
</template>
<template v-else>
<input v-model="newName">
<input v-model="newSurn">
<button @click="save">
save
</button>
</template>
</template>
Employee কম্পোনেন্টের ডেটা সম্পাদনা বাস্তবায়ন করুন।