Vue 'errorCaptured' Lifecycle Hook

Vue errorCaptured lifecycle hook সম্পর্কে জানুন

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

চাইল্ড কম্পোনেন্ট থেকে একটি ত্রুটি ধরতে এবং ব্যবহারকারীর জন্য একটি সতর্কতা তৈরি করতে এররক্যাপচারড লাইফসাইকেল হুক ব্যবহার করুন।

<script>
export default {
  errorCaptured() {
    alert("An error occurred");
  }
}
</script>

এটি কীভাবে কাজ করে তা দেখতে "এটি নিজে চেষ্টা করুন" বোতামে ক্লিক করুন৷

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

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

শিশু/বংশীয় উপাদানে একটি ত্রুটি ঘটলে এররক্যাপচারড লাইফসাইকেল হুক বলা হয়।

এই হুকটি ব্যবহারকারীকে ত্রুটি পরিচালনা, লগিং বা ত্রুটি প্রদর্শনের জন্য ব্যবহার করা যেতে পারে।

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

errorCaptured হুক ব্যবহার করার সময়, ত্রুটি প্রাপ্ত উপাদানটির রেন্ডারকে ট্রিগার না করার বিষয়ে সতর্ক থাকুন, কারণ এটি প্রায়শই একটি অসীম লুপ তৈরি করবে।

ত্রুটি সম্পর্কে তথ্য আমাদের কাছে errorCaptured() ফাংশনের তিনটি আর্গুমেন্ট হিসাবে উপলব্ধ:

  1. error
  2. যে উপাদানটি ত্রুটিটি ট্রিগার করেছে৷
  3. error source type

একটি ত্রুটি ঘটলে ডিফল্ট আচরণ হল প্রচার করা, বা ত্রুটিটি ঘটেছে এমন উপাদান থেকে 'বাবল আপ' করা। যদি কোনো কম্পোনেন্টে কোনো ত্রুটি দেখা দেয়, তাহলে তা প্যারেন্ট কম্পোনেন্ট পর্যন্ত যাবে, এবং এভাবেই, অবশেষে কনসোলে একটি ত্রুটির বার্তা আসবে।

errorCaptured(); চালানোর মাধ্যমে, ত্রুটিটি মূল উপাদানে থাকতে পারে না (প্রচার বন্ধ হয়ে যাবে), এবং ত্রুটিটি কনসোলে একটি ত্রুটি বার্তা হতে পারে না।

অ্যাপ.config.errorHandler ফাংশন ব্যবহার করেও ত্রুটি হ্যান্ডলিং সেট করা যেতে পারে।

আরো উদাহরণ

উদাহরণ 1

ত্রুটিটি ধরতে এবং কনসোলে ত্রুটির তথ্য লিখতে এররক্যাপচারড লাইফসাইকেল হুক ব্যবহার করুন।

App.vue:

<template>
  <h1>The 'errorCaptured' Lifecycle Hook</h1>
  <p>Whenever there is an error in a child component, the errorCaptured() function is called on the parent.</p>
  <p>Open the browser console to see the captured error details.</p>
  <div>
    <comp-one></comp-one>
  </div>
</template>

<script>
export default {
  errorCaptured(error,compInst,errorInfo) {
    console.log("error: ", error);
    console.log("compInst: ", compInst);
    console.log("errorInfo: ", errorInfo);
  }
}
</script>

<style>
#app > div {
  border: dashed black 1px;
  border-radius: 10px;
  padding: 10px;
  margin-top: 10px;
  background-color: lightgreen;
}
</style>

ComOne.vue:

<template>
  <h2>Component</h2>
  <p>This is the component</p>
  <button @click="generateError">Generate Error</button>
</template>

<script>
export default {
  methods: {
    generateError() {
      this.$refs.objEl.innerHTML = "hi";
    }
  }
}
</script>

উদাহরণ 2

errorCaptured lifecycle hook return false; ত্রুটি প্রচার প্রতিরোধ করতে সঙ্গে ব্যবহার করুন.

App.vue:

<template>
  <h1>The 'errorCaptured' Lifecycle Hook</h1>
  <p>Whenever there is an error in a child component, the errorCaptured() function is called on the parent.</p>
  <p>Open the browser console to see the captured error details.</p>
  <div>
    <comp-one></comp-one>
  </div>
</template>

<script>
export default {
  errorCaptured(error,compInst,errorInfo) {
    console.log("error: ", error);
    console.log("compInst: ", compInst);
    console.log("errorInfo: ", errorInfo);
    return false;
  }
}
</script>

<style>
#app > div {
  border: dashed black 1px;
  border-radius: 10px;
  padding: 10px;
  margin-top: 10px;
  background-color: lightgreen;
}
</style>

ComOne.vue:

<template>
  <h2>Component</h2>
  <p>This is the component</p>
  <button @click="generateError">Generate Error</button>
</template>

<script>
export default {
  methods: {
    generateError() {
      this.$refs.objEl.innerHTML = "hi";
    }
  }
}
</script>

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

এই টিউটোরিয়ালের অনেক অধ্যায় ব্যায়ামের সাথে শেষ হয় যা আপনার জ্ঞানের স্তর পরীক্ষা করতে পারে।

errorCaptured lifecycle hook সম্পর্কে কোন বিবৃতিটি সঠিক?

চাইল্ড কম্পোনেন্টে ত্রুটি দেখা দিলে এররক্যাপচারড হুকটিকে প্যারেন্ট কম্পোনেন্টে কল করা হয়
✓ ঠিক আছে! শিশু বা বংশধর উপাদানে একটি ত্রুটি ঘটলে errorCaptured হুকটিকে প্যারেন্ট কম্পোনেন্টে কল করা হয়। এটি ত্রুটি প্রচার শৃঙ্খলে কাজ করে
ত্রুটিটি errorCaptured হুকে সম্পূর্ণরূপে লুকানো যেতে পারে
✗ ভুল! errorCaptured hook এ মিথ্যা ফেরত দিন; ত্রুটি প্রচার প্রতিরোধ করতে পারে কিন্তু সম্পূর্ণরূপে ত্রুটি লুকাতে পারে না। ত্রুটি ইতিমধ্যে ঘটেছে
এররক্যাপচারড হুকে রেন্ডার করা কোডটি রান করা যাক
✗ ভুল! আপনার এমন কোড চালানো উচিত নয় যা errorCaptured হুকে রেন্ডারকে ট্রিগার করে কারণ এটি একটি অসীম লুপ সৃষ্টি করবে। শুধুমাত্র যে কোডটি ত্রুটি পরিচালনা করে তা কার্যকর করা উচিত
errorCaptured এর কোন আর্গুমেন্ট নেই
✗ ভুল! errorCaptured-এর তিনটি আর্গুমেন্ট রয়েছে: 1. ত্রুটির বস্তু, 2. যে উপাদানটি ত্রুটিটিকে ট্রিগার করেছে এবং 3. ত্রুটির উৎসের ধরণ। এগুলি ত্রুটি সম্পর্কে সম্পূর্ণ তথ্য প্রদান করে