শিরোনাম এটি সব বলছে। আমি বুঝতে componentDidMountপারি যে ডম অ্যাক্সেসের প্রয়োজন এমন কোনও কিছুর জন্য কেন উপযুক্ত, তবে একটি এজেএক্স অনুরোধ প্রয়োজনীয় বা সাধারণত এটির প্রয়োজন হয় না।
কি দেয়?
শিরোনাম এটি সব বলছে। আমি বুঝতে componentDidMountপারি যে ডম অ্যাক্সেসের প্রয়োজন এমন কোনও কিছুর জন্য কেন উপযুক্ত, তবে একটি এজেএক্স অনুরোধ প্রয়োজনীয় বা সাধারণত এটির প্রয়োজন হয় না।
কি দেয়?
উত্তর:
componentDidMountপার্শ্ব প্রতিক্রিয়া জন্য। ইভেন্ট শ্রোতাদের যোগ করা, এজেএক্স, ডিওএমকে পরিবর্তন করা ইত্যাদি
componentWillMountখুব কমই দরকারী; বিশেষত যদি আপনি সার্ভার সাইড রেন্ডারিংয়ের বিষয়ে চিন্তা করেন (ইভেন্ট শ্রোতাদের যুক্ত করা ত্রুটি এবং ফাঁস ঘটায় এবং অন্য অনেকগুলি জিনিস ভুল হতে পারে)।
componentWillMountশ্রেণীর উপাদানগুলি থেকে অপসারণের বিষয়ে আলোচনা রয়েছে কারণ এটি নির্মাণকারীর মতো একই উদ্দেশ্যে কাজ করে। এটি createClassউপাদানগুলিতে থাকবে ।
componentWillMount? আমি সত্যিই পার্থক্য দেখতে পাচ্ছি না।
componentWillMountসার্ভারসাইড রেন্ডারে কার্যকর করা হবে। Wheras আপনি যদি ব্যবহার করেন componentDidMountতবে তা কেবল ক্লায়েন্টাইডে কার্যকর করা হবে। ফলস্বরূপ যে জিনিসগুলিতে componentWillMountবাহ্যিক মিথস্ক্রিয়া সম্পাদন করা হয় বা ইভেন্টগুলি ইত্যাদির সাথে আবদ্ধ করা কোনও দুর্দান্ত ধারণা নয়। আপনার যদি সার্ভারসাইডে আপনার উপাদানগুলি রেন্ডার করার কোনও পরিকল্পনা না থাকে তবে কেবল সম্ভাব্য কোড বহনযোগ্যতার জন্য এটি এখনও ভাল ধারণা নয়। এটি খুব খারাপ মূল কারণের বাইরে যা ডানিউলের জবাবে ব্যাখ্যা করা হয়েছে।
শুরুতেও আমার একই সমস্যা ছিল। আমি অনুরোধ করার চেষ্টা করার সিদ্ধান্ত নিয়েছি componentWillMountতবে এটি বিভিন্ন ছোট সমস্যা থেকে শেষ হয়।
যখন অজ্যাক্স কলটি নতুন ডেটা দিয়ে শেষ হয় তখন আমি রেন্ডারিং ট্রিগার করছিলাম। কোনও সময়ে উপাদানটির রেন্ডারিং সার্ভারের কাছ থেকে প্রতিক্রিয়া পাওয়ার চেয়ে বেশি সময় নিয়েছিল এবং এই সময়ে অ্যাজাক্স কলব্যাক আনমাউন্টযুক্ত উপাদানটিতে রেন্ডারকে ট্রিগার করেছিল। এটি ধরণের ধরণের ক্ষেত্রে তবে সম্ভবত আরও কিছু আছে, তাই এটি আটকে থাকা আরও নিরাপদ componentDidMount।
componentWillMount, তাই আপনার এখনও componentDidMountআপনার এজ্যাক্স কলগুলি ব্যবহার করা উচিত ।
setStateকোনও উপাদান তৈরির জন্য কল করা উচিত নয় এবং এজেএক্স কল কখন শেষ হবে তা নির্ধারণ করার কোনও উপায় আপনার নেই। twitter.com/dan_abramov/status/576453138598723585
ডকুমেন্টেশন অনুসারে রাষ্ট্রটি সেট করে componentWillMountকোনও পুনরায় রেন্ডারিং শুরু করবে না। যদি এজেএক্স কলটি অবরুদ্ধ না হয়ে থাকে এবং আপনি Promiseসাফল্যের সাথে উপাদানটির অবস্থা আপডেট করে এমন একটি প্রত্যাবর্তন করেন তবে উপাদানটি রেন্ডার হওয়ার পরে প্রতিক্রিয়া উপস্থিত হওয়ার সম্ভাবনা রয়েছে। হিসাবে componentWillMountএকটি ট্রিগার নেই পুনরায় রেন্ডার আপনি আচরণ আপনার প্রত্যাশিত যা উপাদান হচ্ছে অনুরোধ করা তথ্য সঙ্গে অনুষ্ঠিত হয় থাকবে না।
আপনি যদি কোনও ফ্লাক্স লাইব্রেরি ব্যবহার করেন এবং স্টোরটিতে অনুরোধ করা ডেটা উপাদানটির সাথে সংযুক্ত থাকে (বা কোনও সংযুক্ত উপাদান থেকে উত্তরাধিকারী হন) এটি কোনও সমস্যা হবেনা কারণ এই ডেটার অভ্যর্থনা সম্ভবত সম্ভবত প্রপস পরিবর্তন করবে will অবশেষে.
componentWillMountপ্রথম রেন্ডারের আগে একটি নতুন রাজ্য সংজ্ঞায়িত করা হওয়ায় পুনরায় রেন্ডারটি ট্রিগার করে না। তবে যদি setStateএজেএক্স কলব্যাকে ডাকা হয় তবে প্রথম রেন্ডারের পরে এটি অবশ্যই স্পষ্টভাবে ডাকা হবে এবং এটি পুনরায় রেন্ডারকে ট্রিগার করবে।
componentWillMount... তবে উপাদানটি মাউন্ট হয়নি fail