রেডাক্স লেখক এখানে!
Redux নয় যে সর্দি থেকে আলাদা। সামগ্রিকভাবে এটির একই আর্কিটেকচার রয়েছে তবে রেডাক্স ফাংশনাল কম্পোজিশন ব্যবহার করে কিছু জটিলতার কোণগুলি কাটাতে সক্ষম হন যেখানে ফ্লাক্স কলব্যাক রেজিস্ট্রেশন ব্যবহার করে।
রেডাক্সের মধ্যে কোনও মৌলিক পার্থক্য নেই, তবে আমি দেখতে পেয়েছি এটি কিছু নির্দিষ্ট বিমূর্ততা সহজ করে তোলে বা কমপক্ষে বাস্তবায়ন সম্ভব হয়েছে, এটি ফ্লাক্সে কার্যকর করা কঠিন বা অসম্ভব হতে পারে।
হ্রাস রচনা
উদাহরণস্বরূপ, পৃষ্ঠা-রচনা করুন। আমার ফ্লাক্স + প্রতিক্রিয়া রাউটার উদাহরণ পৃষ্ঠাটি হ্যান্ডেল করে তবে এর কোডটি ভয়াবহ। এটি মারাত্মক কারণগুলির মধ্যে একটি হ'ল ফ্লাক্স স্টোরগুলিতে কার্যকারিতা পুনরায় ব্যবহার করা অস্বাভাবিক করে তোলে।যদি দুটি স্টোরকে বিভিন্ন ক্রিয়াকলাপের প্রতিক্রিয়া হিসাবে পৃষ্ঠাগুলি পরিচালনা করতে হয় তবে তাদের হয় একটি সাধারণ বেস স্টোর থেকে উত্তরাধিকারী হওয়া দরকার (খারাপ! আপনি যখন উত্তরাধিকার ব্যবহার করবেন তখন নিজেকে একটি বিশেষ নকশায় লক করছেন), বা এর মধ্যে থেকে বাহ্যিকভাবে সংজ্ঞায়িত ফাংশনটি কল করুন ইভেন্ট হ্যান্ডলার, যা কোনওরকমভাবে ফ্লাক্স স্টোরের ব্যক্তিগত রাজ্যে পরিচালনা করতে হবে। পুরো জিনিসটি অগোছালো (যদিও এটি সম্ভবত সম্ভাব্য রাজ্যে)।
অন্যদিকে, রেডাক্স পৃষ্ঠাসমূহের সাথে হ্রাসকারী রচনাকে প্রাকৃতিক ধন্যবাদ। এটি পুরোপুরি হ্রাসকারী , সুতরাং আপনি একটি হ্রাসকারক কারখানা লিখতে পারেন যা পৃষ্ঠাগুলি হ্রাসকারী উত্পাদন করে এবং তারপরে আপনার হ্রাসকারক গাছটিতে এটি ব্যবহার করতে পারে । এটি এত সহজ কেন হবার মূল চাবিকাঠি কারণ ফ্লাক্সে, স্টোরগুলি সমতল, তবে রেডাক্সে, হ্রাসকারীদের যেমন কার্যক্ষম রচনা তৈরি করা যায়, ঠিক তেমনি প্রতিক্রিয়া উপাদানগুলি বাসা বাঁধে।
এই প্যাটার্নটি নো-ইউজার-কোড পূর্বাবস্থায়িত / পুনরায় করার মতো দুর্দান্ত বৈশিষ্ট্যগুলিকে সক্ষম করে । আপনি কী ফ্ল্যাশ অ্যাপ্লিকেশনটিতে কোডের দুটি লাইন হিসাবে পূর্বাবস্থায় ফিরুন / পুনরায় প্লাগিং করতে পারবেন? কষ্টসহকারে। রেডাক্সের সাথে এটি রিডাক্সার কম্পোজিশনের প্যাটার্নকে ধন্যবাদ জানায়। আমাকে এ সম্পর্কে নতুন কিছু বলার দরকার নেই — এটি এলম আর্কিটেকচারের পথিকৃত এবং বিস্তারিতভাবে বর্ণিত প্যাটার্ন যা নিজেই ফ্লাক্স দ্বারা প্রভাবিত হয়েছিল।
সার্ভার রেন্ডারিং
লোকেরা সার্ভারে ফ্লাক্সের সাথে জরিমানা করে চলেছে, কিন্তু আমাদের কাছে প্রতিটি 20 ফ্লাক্স লাইব্রেরি রয়েছে যা প্রতিটি সার্ভারকে "সহজ" রেন্ডারিং করার চেষ্টা করছে, সম্ভবত ফ্লুসের সার্ভারে কিছু রুক্ষ প্রান্ত রয়েছে। সত্যটি হ'ল ফেসবুক খুব বেশি সার্ভার রেন্ডারিং করে না, তাই তারা এ সম্পর্কে খুব বেশি উদ্বিগ্ন হয়নি, এবং আরও সহজ করার জন্য বাস্তুতন্ত্রের উপর নির্ভর করে।
Traditionalতিহ্যবাহী ফ্লাক্সে, স্টোরগুলি সিলেটলেট। এর অর্থ সার্ভারে বিভিন্ন অনুরোধের জন্য ডেটা আলাদা করা শক্ত। অসম্ভব নয়, তবে শক্ত। এ কারণেই বেশিরভাগ ফ্লাক্স লাইব্রেরি (পাশাপাশি নতুন ফ্লাক্স ইউটিলস ) এখন আপনাকে সিঙ্গেলনের পরিবর্তে ক্লাস ব্যবহার করার পরামর্শ দেয়, যাতে আপনি অনুরোধ অনুযায়ী স্টোরগুলি ইনস্ট্যান্ট করতে পারেন।
এখনও নিম্নলিখিত সমস্যাগুলি যে আপনার (হয় নিজের বা হিসাবে আপনার প্রিয় সর্দি গ্রন্থাগার যেমন সাহায্যে সর্দি মধ্যে সমাধান করতে প্রয়োজন হতবুদ্ধি বা অল্টার ):
- স্টোরগুলি যদি ক্লাস হয় তবে আমি কীভাবে অনুরোধ অনুযায়ী প্রেরণকারীর মাধ্যমে সেগুলি তৈরি এবং ধ্বংস করব? আমি কখন স্টোর নিবন্ধন করব?
- আমি কীভাবে স্টোরগুলি থেকে ডেটা হাইড্রেট করব এবং পরে ক্লায়েন্টে এটি পুনরায় হাইড্রেট করব? এর জন্য কি আমার বিশেষ পদ্ধতি প্রয়োগ করা দরকার?
স্বীকার করা যায় যে ফ্লাক্স ফ্রেমওয়ার্কগুলি (ভ্যানিলা ফ্লাক্স নয়) এর এই সমস্যাগুলির সমাধান রয়েছে তবে আমি সেগুলি অত্যধিক জটিল বলে মনে করি। উদাহরণস্বরূপ, ফ্লুমম্যাক্স আপনাকে কার্যকর করতে serialize()
এবং deserialize()
আপনার স্টোরগুলিতে জিজ্ঞাসা করে । আল্ট এই জাসন takeSnapshot()
ট্রিতে স্বয়ংক্রিয়ভাবে আপনার রাজ্যটিকে সিরিয়ালাইজ করে এই সুন্দর সমাধান করে ।
রেডাক্স আরও এগিয়ে যায়: যেহেতু এখানে কেবলমাত্র একটি একক স্টোর রয়েছে (অনেক হ্রাসকারী দ্বারা পরিচালিত), আপনাকে (পুনরায়) হাইড্রেশন পরিচালনা করার জন্য কোনও বিশেষ এপিআইয়ের দরকার নেই। আপনার "ফ্লাশ" বা "হাইড্রেট" স্টোরগুলি লাগবে না just কেবলমাত্র একটি স্টোর রয়েছে এবং আপনি এটির বর্তমান অবস্থা পড়তে বা একটি নতুন স্টোর সহ একটি নতুন স্টোর তৈরি করতে পারেন। প্রতিটি অনুরোধ একটি পৃথক স্টোর উদাহরণ পায় gets Redux এর সাথে সার্ভার রেন্ডারিং সম্পর্কে আরও পড়ুন।
আবার এটি ফ্লাক্স এবং রেডাক্স উভয় ক্ষেত্রেই সম্ভাব্য কিছু বিষয়, তবে ফ্লাকস লাইব্রেরিগুলি এক টন এপিআই এবং কনভেনশন প্রবর্তন করে এই সমস্যাটি সমাধান করে এবং রেডাক্সকে এমনকি এটি সমাধান করতে হবে না কারণ এতে সমস্যা নেই that ধারণাগত সরলতার জন্য প্রথম স্থান ধন্যবাদ।
বিকাশকারী অভিজ্ঞতা
আমি আসলে রেডাক্সকে একটি জনপ্রিয় ফ্লাক্স লাইব্রেরি হওয়ার ইচ্ছা করি নি time সময় ভ্রমণের সাথে গরম পুনরায় লোড করার জন্য আমার রিএ্যাকটোরোপ টকটিতে কাজ করার সময় আমি এটি লিখেছিলাম । আমার একটি মূল উদ্দেশ্য ছিল: ফ্লাইতে রিডুসার কোড পরিবর্তন করা বা ক্রিয়াগুলি অতিক্রম করে "অতীত পরিবর্তন" করা এবং রাষ্ট্রটি পুনরায় গণনা করা হচ্ছে দেখুন see

আমি এমন কোনও ফ্লাক্স গ্রন্থাগার দেখিনি যা এটি করতে সক্ষম। প্রতিক্রিয়া হট লোডারও আপনাকে এটি করতে দেয় না fact আসলে আপনি যদি ফ্লাক্স স্টোরগুলি সম্পাদনা করেন তবে এটি ভেঙে যায় কারণ তাদের সাথে কী করা উচিত তা জানেন না।
যখন রেডাক্সকে হ্রাসকারী কোডটি পুনরায় লোড করা দরকার হয়, তখন এটি কল করে replaceReducer()
এবং অ্যাপটি নতুন কোড দিয়ে চলে। ফ্লাক্সে, ডেটা এবং ফাংশনগুলি ফ্লাক্স স্টোরগুলিতে জড়িয়ে থাকে, সুতরাং আপনি "কেবলমাত্র ফাংশনগুলি প্রতিস্থাপন করতে পারবেন না"। তদুপরি, আপনাকে ডিসপ্যাচারের সাথে কোনওভাবে নতুন সংস্করণগুলি পুনরায় নিবন্ধন করতে হবে — এমন কিছু যা রেডাক্সের কাছে নেই।
ইকোসিস্টেম
রেডাক্সের একটি সমৃদ্ধ এবং দ্রুত বর্ধমান ইকোসিস্টেম রয়েছে । এটি মিডলওয়্যার হিসাবে কয়েকটি এক্সটেনশন পয়েন্ট সরবরাহ করে কারণ এটি । এটি লগিং , প্রতিশ্রুতিগুলির জন্য সমর্থন , পর্যবেক্ষণযোগ্য , রাউটিং , অপরিবর্তনীয়তা চেক , অধ্যবসায় ইত্যাদি মাথায় রেখে ব্যবহারের ক্ষেত্রে তৈরি করা হয়েছিল । এগুলি সবই কার্যকর হতে পারে না, তবে সহজেই একসাথে কাজ করার জন্য একত্রে থাকা সরঞ্জামগুলির একটি সেট অ্যাক্সেস পেয়ে খুব ভাল।
সরলতা
রেডাক্স ফ্লাক্সের সমস্ত সুবিধা (ক্রিয়াকলাপ রেকর্ডিং এবং পুনরায় খেলনা, একমুখী ডেটা প্রবাহ, নির্ভরশীল মিউটেশন) সংরক্ষণ করে এবং ডিসপ্যাচার এবং স্টোর রেজিস্ট্রেশন প্রবর্তন না করে নতুন সুবিধা (সহজ পূর্বাবস্থায় ফেরত, গরম পুনরায় লোডিং) যুক্ত করে।
এটিকে সহজ রাখা গুরুত্বপূর্ণ কারণ আপনি উচ্চ-স্তরের বিমূর্তি প্রয়োগ করার সময় এটি আপনাকে বুদ্ধিমান করে তোলে।
বেশিরভাগ ফ্লাক্স লাইব্রেরির মতো নয়, রেডাক্স এপিআই পৃষ্ঠটি ক্ষুদ্র। আপনি যদি বিকাশকারীদের সতর্কতা, মন্তব্য এবং স্যানিটি চেকগুলি সরিয়ে ফেলেন তবে এটি 99 লাইন । ডিবাগ করার জন্য কোনও জটিল অ্যাসিঙ্ক কোড নেই।
আপনি এটি পড়তে এবং রেডাক্সের সমস্ত বুঝতে পারবেন।
আরও দেখুন সর্দি তুলনায় Redux ব্যবহারের মূল্যবান উপর আমার উত্তর ।