প্রতিক্রিয়ায় ক্লাস বনাম কার্যকরী উপাদান এবং অতি গোপন তৃতীয় বিকল্প

আমি চিবিয়ে পছন্দ করি

আমি প্রতিক্রিয়া হিসাবে আমার উদ্দীপনা শুরু করার সাথে সাথে, আমি যে প্রশ্নটি প্রায়শই শুনতে পাই তা হ'ল "কেন আমি কেবল সমস্ত কিছুর জন্য একটি শ্রেণি উপাদান ব্যবহার করব না? এমনকি এমনকি কার্যকরী উপাদানগুলি নিয়ে কেন বিরক্ত করবেন? "

কিছু কার্যকর ক্রিয়াকলাপ ডাই-হার্ড বলতে পারে তা সত্ত্বেও, এটি অগত্যা খারাপ প্রশ্ন নয়। সর্বোপরি, শ্রেণি উপাদানগুলি আমাদের একটি সাধারণ, 'বোবা' উপাদানগুলির চেয়ে অনেক বেশি নমনীয়তা দেয়। অবশ্যই আমরা কার্যক্ষম (বা ‘স্টেটলেস’) উপাদান দিয়ে শুরু করার জন্য বিরক্ত করার কয়েকটি ভাল কারণ রয়েছে।

ভাল, কিছু খননের পরে, উত্তরটি হ'ল ...

বিষয়ী.

সুতরাং আসুন দ্রুত দুটি প্রকারের উপরে এবং কেন আপনি অন্যগুলির মধ্যে একটি ব্যবহার করতে চান।

কার্যকরী উপাদান

প্রতিক্রিয়া সম্প্রদায়ে সম্ভবত ‘স্টেটলেস’ উপাদান হিসাবে আরও বেশি পরিচিত, এটি টিনের উপরে ঠিক যা বলেছেন: রাষ্ট্রহীন কার্যাবলী। এটির নিজস্ব পদ্ধতি রয়েছে বা এটি উল্লেখ করতে অক্ষমতার কারণে, সমস্ত রাজ্যহীন উপাদান সত্যিকার অর্থে যে কিছু অর্জন করতে পারে তা হ'ল কিছু জেএসএক্স (বা আপনি যদি পুরানো স্কুল হন তবে React.createElement () রিটার্ন করে রেন্ডার।

তাদের এতে অ্যাক্সেস নেই, তাই তাদের নিজস্ব রাজ্য থাকতে পারে না, একই কারণে তাদের জীবনচক্র পদ্ধতিও থাকতে পারে না। তাদের জন্য, আপনার প্রয়োজন ...

শ্রেণি উপাদান

প্রতিক্রিয়াটির কাঠামোর রুটি এবং মাখন, শ্রেণি উপাদানগুলি এগুলি সব করতে পারে: রাজ্য, জীবনচক্র পদ্ধতি, নিয়মিত পদ্ধতি এবং উপস্থাপনা, সবই একটি পরিপাটি শ্রেণির দেহের ভিতরে আবৃত।

ঝরঝরে! এখন, কোনটি ব্যবহার করবেন?

ইলিউশন অফ চয়েস

কী উদ্বেগজনক সাবটাইটেল! এগুলির প্রতিটি কী কী তা সম্পর্কে আপনি সম্ভবত চিন্তাভাবনা করছেন "স্পষ্টতই, যদি কেবল প্রপসের উপর ভিত্তি করে কিছু সরবরাহ করতে হয় তবে স্টেটলেস উপাদান ব্যবহার করুন!" এবং আপনি ঠিকই থাকবেন! সাধারণত, আপনি কেন রাজ্যহীন উপাদান ব্যবহার করার কথা ভাবতেন ঠিক তাই, তবে কার্য সম্পাদন সম্পর্কে কী বলা যায়? স্মৃতি?

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

তাহলে সেই ভীতিজনক সাবটাইটেলটির কী হবে? আসুন আমরা প্রতিক্রিয়া বিশেষজ্ঞ ড্যান আব্রামভকে জিজ্ঞাসা করি।

এটিকে নুনের দানার সাথে নিয়ে যান, কারণ এটি এই মুহুর্তে কিছুটা তারিখ এবং বিষয়টির আপডেটগুলি খনন করা কঠিন এবং প্রতিক্রিয়া দলের অন্যান্য বিকাশকারীদের দ্বারা বলা হয়েছে যে কার্যকরী উপাদানগুলির গতিতে কিছু উন্নতি করা হয়েছে। রাষ্ট্রবিহীন উপাদানগুলির অনুকূলকরণের জন্য বেশ কিছু সময় কথাও হয়েছে যাতে তারা লাইনটিতে আরও কার্যকর প্রমাণিত হয়।

আমার নিজের কিছু মানদণ্ড পরীক্ষার পরে, মনে হয় যে কার্যকরী উপাদানগুলিতে গড়ে প্রায় 20% দ্রুত চালানোর সম্ভাবনা রয়েছে, যা লাঠি ঝাঁকানোর কিছুই নয়।

এবং এখনও ... অন্য উপায় আছে ...

স্পোলার সতর্কতা: আসল জাভাস্ক্রিপ্ট

ফিলিপ লেহউকের মিডিয়াম আর্টিকেল 45% এর দ্রুত কার্যকরী উপাদানগুলির এখন পর্যবেক্ষণের জন্য আমি এটাকে ঘৃণা করি। ক্লাস উপাদানগুলির তুলনায় ক্রিয়ামূলক উপাদানগুলি তত্ক্ষণাত্ দ্রুততর না হওয়ার কারণ হ'ল তারা এখনও প্রতিক্রিয়া বাড়িয়ে চলেছে omp উপাদান এবং এর ফলে, এখনও একটি শ্রেণীর উপাদানগুলির সমস্ত যুক্তিতে লোড হচ্ছে!

সুতরাং এই বোবা উপাদানগুলির গতি বাড়ানোর জন্য, আমাদের অযৌক্তিক ব্যাগেজগুলি বাইপাস করতে হবে যা প্রতিক্রিয়া দেয় omp উপাদানগুলি আমাদের দেয়, এবং যদি আমাদের প্রতিক্রিয়াটি ত্যাগ করতে হয় তবে উত্তরটি ভাল ol ’জেএস।

গম্ভীর গর্জন।

আমি জানি. এটি এত সহজ, তবুও সুন্দর। এছাড়াও, আমার বেঞ্চমার্ক পরীক্ষায় এটি একটি সাধারণ শ্রেণীর উপাদানকে ৫১% পরাজিত করে। 51!

আসুন প্রতিস্থাপনটি দেখুন এবং এটি কেন হয় তা দেখুন।

সরাসরি ফাংশন কল বনাম কম্পোনেন্ট ইনস্ট্যান্টেশন ation

আমাদের সাধারণ উপাদান তাত্ক্ষণিকতায়, আমরা আমাদের ডোম ট্রি তৈরি করার জন্য .createElement () কলগুলিতে নেস্ট করেছি, তবে সরাসরি ফাংশন কল সহ আমরা কেবল আমাদের ফাংশনটির রিটার্ন মান হ্রাস করতে পারি।

তাহলে সত্যটা কি?

(দুঃখিত, দুঃখিত না)

দিন শেষে টেকওয়েস কি?

  1. ক্লাসগুলি আরও শক্তিশালী এবং নমনীয় হয়,
  2. স্টেটলেস কিছুটা দ্রুত (এবং কম টাইপিংয়ের প্রয়োজন!), অপ্টিমাইজেশনের বাতাসে কিছু প্রতিশ্রুতি সহ,
  3. আপনার কাছে পেতে পারেন এমন সমস্ত পারফরম্যান্সগুলি গ্রাস করার দরকার হলে আপনার কাছে একটি (কিছুটা অনাকাঙ্ক্ষিত) স্পিড-হ্যাক উপলব্ধ রয়েছে,
  4. দিন শেষে, কম্পোনেন্টের জন্য খালি সর্বনিম্ন যা কিছু করুন। এটি সম্ভবত সঠিক পছন্দ।