Reactjs.org এর মতে, কম্পোনেন্ট উইলমাউন্ট ভবিষ্যতে সমর্থিত হবে না।
https://reactjs.org/docs/react-component.html#unsafe_componentwillmount
কম্পোনেন্টওয়েলমাউন্ট ব্যবহার করার দরকার নেই।
আপনি যদি উপাদানটি মাউন্ট করার আগে কিছু করতে চান তবে কেবল এটি কনস্ট্রাক্টর () এ করুন।
আপনি যদি নেটওয়ার্কের অনুরোধগুলি করতে চান তবে এটি কম্পোনেন্টওয়েলমাউন্টে করবেন না। কারণ এটি করার ফলে অপ্রত্যাশিত বাগগুলি দেখা দেবে।
নেটওয়ার্ক অনুরোধগুলি কম্পোনেন্টডিডমাউন্টে করা যেতে পারে।
আশা করি এটা সাহায্য করবে.
08/03/2019 এ আপডেট হয়েছে
আপনি যে উপাদানটি উইলমাউন্টের জন্য জিজ্ঞাসা করেছেন তার কারণ সম্ভবত আপনি রেন্ডারগুলির আগে রাজ্যকে আরম্ভ করতে চান।
এটি কেবল স্টেটে করুন।
const helloWorld=()=>{
const [value,setValue]=useState(0) //initialize your state here
return <p>{value}</p>
}
export default helloWorld;
অথবা হতে পারে আপনি কম্পোনেন্টউলমাউন্টে কোনও ফাংশন পরিচালনা করতে চান, উদাহরণস্বরূপ, যদি আপনার মূল কোডটি দেখতে এই রকম হয়:
componentWillMount(){
console.log('componentWillMount')
}
হুক দিয়ে, আপনাকে যা করতে হবে তা হ'ল লাইফেসাইক্যাল পদ্ধতিটি সরানো:
const hookComponent=()=>{
console.log('componentWillMount')
return <p>you have transfered componeWillMount from class component into hook </p>
}
আমি শুধু ব্যবহারের প্রভাব সম্পর্কে প্রথম উত্তরে কিছু যুক্ত করতে চাই।
useEffect(()=>{})
ইউজএফেক্ট প্রতিটি রেন্ডারে চালিত হয়, এটি কম্পোনেন্টডিডপেটেট, কম্পোনেন্টডিডমাউন্ট এবং কম্পোনেন্টওয়িলআউনমাউন্টের সংমিশ্রণ।
useEffect(()=>{},[])
আমরা যদি ব্যবহারের ক্ষেত্রে খালি অ্যারে যুক্ত করি তবে এটি উপাদানটি মাউন্ট করার সময় চলে runs এটি হ'ল ইউজএফেক্ট আপনি যে অ্যারেটি দিয়েছিলেন তার সাথে তুলনা করবে। সুতরাং এটি খালি অ্যারে হতে হবে না t এটি অ্যারে হতে পারে যা পরিবর্তন হচ্ছে না। উদাহরণস্বরূপ, এটি [1,2,3] বা ['1,2'] হতে পারে। ইউজএফেক্টটি তখনও চালিত হয় যখন উপাদানটি মাউন্ট হয়।
এটি আপনি একবার চালাতে চান বা প্রতি রেন্ডারের পরে চালানো চান তা আপনার উপর নির্ভর করে। আপনি যতক্ষণ না জানেন আপনি যতক্ষণ না কোনও অ্যারে যুক্ত করতে ভুলে গেছেন তা বিপজ্জনক নয়।
আমি হুক জন্য একটি নমুনা তৈরি। অনুগ্রহপূর্বক এটি ভালো করে দেখুন.
https://codesandbox.io/s/kw6xj153wr
21/08/2019 এ আপডেট হয়েছে
আমি উপরের উত্তরটি লেখার পরে এটি একটি সাদা হয়েছে। এমন কিছু আছে যা আমি মনে করি আপনার মনোযোগ দেওয়া উচিত। আপনি যখন ব্যবহার
useEffect(()=>{},[])
প্রতিক্রিয়া যখন অ্যারের সাথে আপনি পাস করা মানগুলির সাথে তুলনা করে [], এটি তুলনা করতে অবজেক্ট.ইস () ব্যবহার করে। আপনি যদি এটিতে কোনও বস্তু পাস করেন, যেমন
useEffect(()=>{},[{name:'Tom'}])
এটি হুবহু একই:
useEffect(()=>{})
এটি প্রতিবার পুনরায় রেন্ডার করবে কারণ যখন অবজেক্ট.ইস () কোনও বস্তুর তুলনা করে, তখন এটি তার রেফারেন্সটির সাথে মানটির তুলনা করে। এটি একই কারণ কেন {} === {false মিথ্যা ফিরিয়ে দেয় কারণ তাদের উল্লেখগুলি ভিন্ন। আপনি যদি এখনও অবজেক্টটিকে রেফারেন্সের মতো না করে তুলনা করতে চান তবে আপনি এই জাতীয় কিছু করতে পারেন:
useEffect(()=>{},[JSON.stringify({name:'Tom'})])