সবচেয়ে বড় সুবিধার একটি React.js হতে অনুমিত হয় সার্ভার সাইড রেন্ডারিং । সমস্যাটি হ'ল মূল ফাংশনটি React.renderComponentToString()
সিঙ্ক্রোনাস যা কোনও অ্যাসিনক্রোনাস ডেটা লোড করা অসম্ভব করে দেয় কারণ উপাদান ক্রিয়াকলাপটি সার্ভারে রেন্ডার হয়।
আসুন বলি যে আমার কাছে মন্তব্য করার জন্য একটি সার্বজনীন উপাদান রয়েছে যা আমি পৃষ্ঠায় যে কোনও জায়গায় ফেলে দিতে পারি। এটির একটি মাত্র সম্পত্তি রয়েছে, একধরণের শনাক্তকারী (উদাহরণস্বরূপ কোনও নিবন্ধের আইডি যার নীচে মন্তব্যগুলি দেওয়া হয়েছে), এবং অন্য সমস্ত কিছুই স্বয়ংক্রিয়ভাবে উপাদানটি পরিচালনা করে (লোডিং, অ্যাডিং, মন্তব্য পরিচালনা) aging
আমি সত্যিই মত সর্দি স্থাপত্য কারণ এটি জিনিস অনেক অনেক সহজ করে তোলে, এবং তার দোকানে সার্ভার ও ক্লায়েন্টের মধ্যে রাষ্ট্র ভাগ করে নেওয়ার জন্য নিখুঁত। মন্তব্যগুলি সম্বলিত আমার স্টোরটি একবার শুরু হয়ে গেলে, আমি কেবল এটি সিরিয়ালাইজ করতে পারি এবং এটি সার্ভার থেকে ক্লায়েন্টে পাঠাতে পারি যেখানে এটি সহজে পুনরুদ্ধার হয় is
আমার দোকানটি জনপ্রিয় করার সবচেয়ে ভাল উপায়টি হল প্রশ্ন। বিগত দিনগুলিতে আমি প্রচুর পরিমাণে গুগল করছি এবং আমি কয়েকটি কৌশল নিয়ে এসেছি, যার মধ্যে রিয়াকের এই বৈশিষ্ট্যটি "প্রচারিত" হচ্ছে কত তা বিবেচনা করে সত্যই ভাল লাগেনি।
আমার মতে, সহজ উপায় হ'ল আসল রেন্ডারিং শুরু হওয়ার আগে আমার সমস্ত স্টোরকে জনপ্রিয় করা। এর অর্থ উপাদান অংশক্রমের বাইরের কোথাও (উদাহরণস্বরূপ আমার রাউটারে আবদ্ধ)। এই পদ্ধতির সাথে সমস্যাটি হ'ল আমাকে পৃষ্ঠার কাঠামোটি প্রায় দু'বার সংজ্ঞায়িত করতে হবে। আরও জটিল পৃষ্ঠা বিবেচনা করুন, উদাহরণস্বরূপ অনেকগুলি বিভিন্ন উপাদান (প্রকৃত ব্লগ পোস্ট, মন্তব্যগুলি, সম্পর্কিত পোস্টগুলি, নতুন পোস্টগুলি, টুইটার স্ট্রিম ...) সহ একটি ব্লগ পৃষ্ঠা আমাকে প্রতিক্রিয়া উপাদানগুলি ব্যবহার করে পৃষ্ঠা কাঠামোটি ডিজাইন করতে হবে এবং অন্য কোথাও আমাকে এই বর্তমান পৃষ্ঠার জন্য প্রতিটি প্রয়োজনীয় দোকান পপুলেশন প্রক্রিয়াটি সংজ্ঞায়িত করতে হবে। এটি আমার কাছে সুন্দর সমাধান বলে মনে হচ্ছে না। দুর্ভাগ্যক্রমে বেশিরভাগ আইসমোর্ফিক টিউটোরিয়ালগুলি এইভাবে ডিজাইন করা হয়েছে (উদাহরণস্বরূপ এই দুর্দান্ত ফ্লাক্স-টিউটোরিয়াল )।
প্রতিক্রিয়া-অ্যাসিঙ্ক । এই পদ্ধতির নিখুঁত। এটি আমাকে প্রতিটি উপাদানগুলির একটি বিশেষ ক্রিয়াকলাপে কেবল কীভাবে রাষ্ট্রের সূচনা করতে হয় তা সংজ্ঞায়িত করতে দেয় (সিঙ্ক্রোনালি বা অ্যাসিঙ্ক্রোনালি কোনও বিষয় নয়) এবং এই ক্রিয়াকলাপগুলি হায়ারার্কি এইচটিএমএলকে রেন্ডার করা হচ্ছে বলে ডাকা হয়। এটি এমনভাবে কাজ করে যে কোনও রাজ্য পুরোপুরি সূচনা না করা অবধি কোনও উপাদানকে রেন্ডার করা হয় না। সমস্যাটি হ'ল এর জন্য ফাইবার দরকারযা আমি যতদূর বুঝতে পেরেছি, একটি নোড.জেএস এক্সটেনশন যা স্ট্যান্ডার্ড জাভাস্ক্রিপ্টের আচরণকে পরিবর্তন করে। যদিও আমি ফলাফলটি সত্যিই পছন্দ করি, তবুও এটি আমার কাছে মনে হয় যে সমাধানের পরিবর্তে আমরা গেমটির নিয়মগুলি পরিবর্তন করেছি। এবং আমি মনে করি আমাদেরকে React.js এর মূল বৈশিষ্ট্যটি ব্যবহার করতে বাধ্য করা উচিত নয়। আমি এই সমাধানটির সাধারণ সমর্থন সম্পর্কেও নিশ্চিত নই। স্ট্যান্ডার্ড নোড.জেএস ওয়েব হোস্টিংয়ে ফাইবার ব্যবহার করা কি সম্ভব?
আমি নিজে থেকে একটু ভাবছিলাম। আমি বাস্তবায়নের বিশদটি সত্যই ভাবি নি তবে সাধারণ ধারণাটি হ'ল আমি উপাদানগুলি একই রকমভাবে রিঅ্যাক্ট-অ্যাসিঙ্ক হিসাবে প্রসারিত করব এবং তারপরে আমি বারবার মূল উপাদানটিতে React.renderComp घटकToString () কল করব। প্রতিটি পাসের সময় আমি প্রসারিত কলব্যাকগুলি সংগ্রহ করতাম এবং তারপরে স্টোরগুলিকে জনপ্রিয় করার জন্য তাদের পাস এবং পাসে কল করতাম। আমি বর্তমান পদক্ষেপের পুনরাবৃত্তি করব যতক্ষণ না বর্তমান উপাদানগুলির শ্রেণিবিন্যাসের জন্য প্রয়োজনীয় সমস্ত স্টোর পপুলেটে যায়। সমাধানের জন্য অনেকগুলি বিষয় রয়েছে এবং আমি অভিনয় সম্পর্কে বিশেষত অনিশ্চিত uns
আমি কি কিছু রেখে গেলাম? অন্য কোন পন্থা / সমাধান আছে? এই মুহূর্তে আমি প্রতিক্রিয়া-অ্যাসিঙ্ক / ফাইবারের পথে যাওয়ার কথা ভাবছি তবে দ্বিতীয় দফায় বর্ণিত হিসাবে এটি সম্পর্কে আমি পুরোপুরি নিশ্চিত নই।
গিটহাব সম্পর্কিত সম্পর্কিত আলোচনা । স্পষ্টতই, কোনও অফিসিয়াল পদ্ধতির বা এমনকি কোনও সমাধান নেই। সম্ভবত আসল প্রশ্নটি কীভাবে প্রতিক্রিয়া উপাদানগুলি ব্যবহার করার উদ্দেশ্যে তৈরি করা হয়। সাধারণ দর্শনের স্তরটির মতো (আমার পরামর্শের এক নম্বর বেশ) বা বাস্তব স্বাধীন এবং স্বতন্ত্র উপাদানগুলির মতো?