Vue-তে প্রতিক্রিয়াশীল উপাদান মুছে ফেলা

আসুন শিখি如何 প্রতিক্রিয়াশীলভাবে মুছে ফেলতে তালিকা থেকে সাবানুষঙ্গিক উপাদান। এর জন্য, প্রতিটি সাবানুষঙ্গিক উপাদানে একটি বিশেষ বাটন তৈরি করা যাক। এই বাটনে ক্লিক করলে একটি ইভেন্ট নির্গত হবে এবং প্যারেন্ট উপাদানে নির্দিষ্ট সাবানুষঙ্গিক উপাদানটি তার id অনুসারে মুছে ফেলা হবে।

বাস্তবায়ন শুরু করা যাক। ধরুন প্যারেন্ট উপাদানে নিম্নলিখিত বস্তুর অ্যারে রয়েছে:

App.vuedata() {
  return {
    users: [
      {
        id: 1,
        name: 'name1',
        surn: 'surn1'
      },
      {
        id: 2,
        name: 'name2',
        surn: 'surn2'
      },
      {
        id: 3,
        name: 'name3',
        surn: 'surn3'
      },
    ],
  }
}

প্যারেন্ট উপাদানে লিখুন এর id দ্বারা ব্যবহারকারী মুছে ফেলার পদ্ধতি:

App.vuemethods: {
  remove(id) {
    this.users = this.users.filter((user) => {
      return user.id !== id;
    })
  }
}

একটি লুপে উপাদান তৈরি করুন, পাস করে তাদের প্যারামিটার হিসাবে নাম, উপাধি, id এবং মুছে ফেলার পদ্ধতি:

App.vue<template>
  <User
    v-for   ="user in users"
    
    :id     ="user.id"
    :name   ="user.name"
    :surn   ="user.surn"
    @remove ="remove"
    :key    ="user.id"
  />
</template>

props সেটিংসে আগত ডেটা লিখুন এবং emits সেটিংসে নির্গত ইভেন্ট:

components/User.vueprops: {
  id:     Number,
  name:   String,
  surn:   String,
},
emits: ['remove'],

উপাদানের টেমপ্লেটে ব্যবহারকারীর নাম এবং উপাধি প্রদর্শন করুন:

components/User.vue<template>
  {{ name }}
  {{ surn }}
</template>

এবং এখন একটি বাটন তৈরি করা যাক, ক্লিক করলে যেটি একটি ইভেন্ট নির্গত করবে মুছে ফেলার জন্য। এই ইভেন্টের প্যারামিটার হিসাবে id উপাদানটি প্রেরণ করা হবে। ইভেন্ট পাওয়ার后 প্যারেন্ট উপাদান এই ব্যবহারকারীকে অ্যারেটি থেকে মুছে ফেলবে বস্তুর এবং এটি প্রতিক্রিয়াশীলভাবে অদৃশ্য হয়ে যাবে ব্যবহারকারীদের তালিকা থেকে।

সুতরাং, এই বাটনটি বাস্তবায়ন করা যাক:

components/User.vue<template>
  {{ name }}
  {{ surn }}
  
  <button @click="$emit('remove', id)">
    remove
  </button>
</template>
Задание 1

একটি লুপে Employee উপাদানগুলি প্রদর্শন করুন। প্রতিটি উপাদানে একটি বাটন তৈরি করুন এটি মুছে ফেলার জন্য।