প্রতিক্রিয়া প্রসঙ্গে বনাম প্রতিক্রিয়া করুন Redux, আমার প্রতিটি ব্যবহার করা উচিত? [বন্ধ]


186

প্রতিক্রিয়া 16.3.0 প্রকাশিত হয়েছিল এবং প্রসঙ্গ এপিআই আর পরীক্ষামূলক বৈশিষ্ট্য নয়। ড্যান আব্রামভ (রেডাক্সের স্রষ্টা) এ সম্পর্কে এখানে একটি ভাল মন্তব্য লিখেছিলেন , তবে কনটেক্সট তখনও পরীক্ষামূলক বৈশিষ্ট্যযুক্ত অবস্থায় ছিল 2 বছর।

আমার প্রশ্নটি হল, আপনার মতামত / অভিজ্ঞতায় আমি কখন রিডাক্ট রেডাক্সের উপর প্রতিক্রিয়া প্রসঙ্গে এবং এর বিপরীতে ব্যবহার করব?


আপনি যদি রেডাক্স এবং প্রতিক্রিয়া প্রবন্ধ এপিআইয়ের সাথে তুলনা করে থাকেন তবে এর কারণ আপনি কেবলমাত্র উপাদানগুলির মধ্যে সিঙ্কে ভার্স রাখতে চান। duixএনপিএম প্যাকেজটি পরীক্ষা করে দেখুন । এটি কলব্যাক সহ কেবল একটি সহজ রাষ্ট্র পরিচালক, বাস্তবায়নের পক্ষে সহজ। কেবল পরিষ্কার করে বলা: আমি স্রষ্টা।
ব্রোদা নোয়েল 25'18

উত্তর:


208

হিসাবে কনটেক্সট আর একটি পরীক্ষামূলক বৈশিষ্ট্য এবং আপনি সরাসরি আপনার অ্যাপ্লিকেশনের মধ্যে কনটেক্সট ব্যবহার করতে পারেন এবং গভীরভাবে নেস্টেড উপাদান যা কি এটা জন্য পরিকল্পনা করা হয়েছিল তথ্য নিচে ক্ষণস্থায়ী জন্য মহান হতে যাচ্ছে।

যেমন মার্ক এরিকসন তার ব্লগে লিখেছেন :

যদি আপনি কেবল প্রপসগুলি পাস এড়াতে Redux ব্যবহার করেন তবে প্রসঙ্গটি Redux কে প্রতিস্থাপন করতে পারে - তবে তারপরে সম্ভবত আপনার প্রথম স্থানে Redux দরকার পড়েনি।

প্রসঙ্গ আপনাকে এর মতো কিছু দেয় না Redux DevTools, আপনার রাজ্যের আপডেটগুলি সন্ধান করার ক্ষমতা, middlewareকেন্দ্রীয় অ্যাপ্লিকেশন যুক্তি যুক্ত করতে এবং Redux সক্ষম করে এমন অন্যান্য শক্তিশালী ক্ষমতা ।

Reduxঅনেক বেশি শক্তিশালী এবং এটি একটি বিশাল সংখ্যক বৈশিষ্ট্য সরবরাহ করে যা সরবরাহ Context Apiকরে না, যেমনটি @ উদ্যানআব্রামভ উল্লেখ করেছেন

প্রতিক্রিয়া রেডাক্স অভ্যন্তরীণভাবে প্রসঙ্গ ব্যবহার করে তবে এটি জনসাধারণের API এ প্রকাশ করে না। সুতরাং আপনার সরাসরি প্রত্যক্ষের তুলনায় রিঅ্যাক্ট রেডাক্সের মাধ্যমে প্রসঙ্গটি ব্যবহার করে আরও নিরাপদ বোধ করা উচিত কারণ যদি এটি পরিবর্তন হয় তবে কোডটি আপডেট করার বোঝা আপনার উপর নয়, রিএ্যাক্ট রেডাক্সের উপর পড়বে।

এটি সর্বশেষতম প্রসঙ্গ API এর সাথে মেনে চলার জন্য এটি বাস্তবায়ন আপডেট করার জন্য রেডাক্স পর্যন্ত

সর্বশেষতম কনটেক্সট এপিআই অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা যেতে পারে যেখানে আপনি কেবল উপাদানগুলির মধ্যে ডেটা পাস করার জন্য রেডাক্স ব্যবহার করছেন, তবে যে অ্যাপ্লিকেশনটি কেন্দ্রিয় ডেটা ব্যবহার করে এবং অ্যাকশন নির্মাতাদের এপিআই অনুরোধ পরিচালনা করে redux-thunkবা redux-sagaএখনও রিডুএক্সের প্রয়োজন হবে। এগুলি ছাড়াও অন্যান্য লাইব্রেরি যুক্ত রয়েছে redux-persistযা আপনাকে লোকালস্টোরেজে স্টোরের ডেটা সংরক্ষণ এবং রিফ্রেশে পুনরায় হাইড্রেট করতে দেয় যা প্রসঙ্গত এপিআই এখনও সমর্থন করে না।

@ ব্লান_ব্রামভ যেমন তার ব্লগে উল্লেখ করেছেন যে আপনার রেডাক্সের প্রয়োজন নাও হতে পারে , যে রিডুএক্স এর মতো কার্যকর অ্যাপ্লিকেশন রয়েছে

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

এই অনেক প্রয়োগের সাথে এটি খুব তাড়াতাড়ি বলা যায় যে নতুন কনটেক্সট এপিআই দ্বারা রেডাক্স প্রতিস্থাপিত হবে


ঠিক আছে, কিন্তু পুনঃব্যবহারযোগ্যতা সম্পর্কে কি? প্রসঙ্গগুলি সম্পূর্ণ পুনঃব্যবহারযোগ্য, একবার রিডেক্স + থাঙ্ক এবং বিশেষত রিডেক্স + সাগা সবেমাত্র।
ইউরি হায়োওয়াই

4
@ ড্যাজেট আমাদের যে জিনিসটি বুঝতে হবে তা হ'ল রিডুএক্স প্রসঙ্গ নয়, এটি প্রসঙ্গের শীর্ষে নির্মিত, আপনার যে স্টোরটি প্রসঙ্গের দ্বারা শেষ হয়েছে, আপনি পুনরায় ব্যবহারযোগ্যতা বলতে কী বোঝাতে চেয়েছেন তাও ব্যাখ্যা করতে পারেন
শুভ খাত্রি

এমনকি পার্শ্ব প্রতিক্রিয়াযুক্ত পুনঃব্যবহারযোগ্য ধারকগুলির মতো এ জাতীয় মৌলিক জিনিসের বিকাশও রিডুএক্সের সাথে দুঃস্বপ্ন হয়ে যায়। রেডাক্স অ্যাপ্লিকেশন স্তরের সাথে আঁটসাঁট, এবং আপনি বলতে পারেন, এটি এখনও পুনরায় ব্যবহারযোগ্য ইত্যাদি etc. ইত্যাদি, তবে পুনরায় ব্যবহারযোগ্য বলে আমার অর্থ সম্পূর্ণ পুনরায় ব্যবহারযোগ্য ... পৃথক প্যাকেজ হিসাবে নির্মিত স্পাইকের কোনও স্প্যাগেটি ছাড়াই এবং অ্যাপ্লিকেশন সেটআপে স্বাধীনভাবে পুনরায় ব্যবহার করা যেতে পারে ।
ইউরি হায়োওয়াই

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

4
রিডেক্সের কোন অংশটি পুনরায় ব্যবহারযোগ্য নয়? আপনি সহজেই হ্রাসকারী, নির্বাচক, ক্রিয়া এবং ক্রিয়া নির্মাতাকে অন্য কোনও অ্যাপ্লিকেশনে রিডুএক্সের সাথে পুনরায় ব্যবহার করতে পারেন (প্রতিক্রিয়া করুন, এমনকি কৌণিক)।
ডেভিড মোলনার

85

আপনি যদি গভীরভাবে নেস্টেড উপাদানগুলিতে প্রপসগুলি এড়াতে কেবল Redux ব্যবহার করেন তবে আপনি Redux এর সাথে প্রতিস্থাপন করতে পারেনContext API এর । এটি ঠিক এই ব্যবহারের ক্ষেত্রে তৈরি for

অন্যদিকে, আপনি যদি অন্য সব কিছুর জন্য রেডাক্স ব্যবহার করছেন (পূর্বাভাসযোগ্য রাষ্ট্রীয় ধারক রয়েছে, আপনার অ্যাপ্লিকেশনটির যুক্তিটি আপনার উপাদানগুলির বাইরে পরিচালনা করছেন, আপনার অ্যাপ্লিকেশনের রাজ্যকে কেন্দ্রিক করে তুলছেন , কখন, কোথায়, কেন, এবং কীভাবে আপনার অ্যাপ্লিকেশনটির অবস্থা তা ট্র্যাক করতে Redux DevTools ব্যবহার করছে রেডাক্স ফর্ম , রেডাক্স সাগা , রেডাক্স আনডো , রেডাক্স পার্সিস্ট , রেডাক্স লগার , ইত্যাদি…) এর মতো প্লাগইন পরিবর্তিত হয়েছে বা ব্যবহার করা হয়েছে, তারপরে আপনার রেডাক্স ছেড়ে যাওয়ার কোনও কারণ নেই is দ্যContextএপিআই এই কোন প্রদান করে না।

এবং আমি ব্যক্তিগতভাবে বিশ্বাস করি যে রেডাক্স ডেভটুলস এক্সটেনশন একটি আশ্চর্যজনক, অবমূল্যায়িত ডিবাগিং সরঞ্জাম, যা নিজেই রেডাক্সকে ব্যবহার করার জন্য ন্যায্যতা দেয়।

কিছু তথ্যসূত্র:


12

আমি এপিআই কল করার জন্য রিডেক্স-থাঙ্কের সাথে রিডুএক্স ব্যবহার করতে পছন্দ করি (অ্যাক্সিয়োসও ব্যবহার করে) এবং হ্রাসকারীদের প্রতিক্রিয়া প্রেরণ করতে। এটা পরিষ্কার এবং বুঝতে সহজ।

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

সুতরাং, প্রশ্নটি কনটেক্সট API বনাম প্রতিক্রিয়া-রিডেক্স, এবং কনটেক্সট API বনাম রিডেক্স নয় vs এছাড়াও, প্রশ্নটি কিছুটা মতামতযুক্ত। যেহেতু, আমি প্রতিক্রিয়া-রিডেক্সের সাথে পরিচিত এবং এটি সমস্ত প্রকল্পে ব্যবহার করি, তাই আমি এটি ব্যবহার চালিয়ে যাব। (আমার পরিবর্তন করার কোনও উত্সাহ নেই)।

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

ব্যক্তিগতভাবে, এটি পরিচিতির প্রশ্ন। একে অপরকে বেছে নেওয়ার স্পষ্ট কারণ নেই কারণ তারা সমতুল্য। এবং অভ্যন্তরীণভাবে, রিঅ্যাক্ট-রিডাক্স প্রসঙ্গটি যেভাবেই হোক ব্যবহার করে uses


10

আমার জন্য Redux ব্যবহারের একমাত্র কারণগুলি হ'ল:

  • আপনি একটি গ্লোবাল স্টেট অবজেক্ট চান (বিভিন্ন কারণে যেমন ডিবাগাবিলিটি, জেদ ...)
  • আপনার অ্যাপ্লিকেশনটি হ'ল বা বড় হবে এবং অনেকগুলি বিকাশকারীদের কাছে এটি স্কেল করা উচিত: এ ক্ষেত্রে আপনার সম্ভবত একটি মাত্রার ইন্ডিয়ারেশন প্রয়োজন (অর্থাত্ একটি ইভেন্ট সিস্টেম): আপনি ঘটনাগুলিতে আগুন জ্বালান (অতীতে) এবং তারপরে আপনি যাদের জানেন না তাদের আপনার সংস্থা আসলে তাদের শুনতে পারে

আপনার পুরো অ্যাপ্লিকেশনটির জন্য সম্ভবত আপনাকে ইন্ডায়ারেশনের স্তরটির প্রয়োজন নেই, সুতরাং শৈলীর মিশ্রণ এবং একই সাথে স্থানীয় রাষ্ট্র / প্রসঙ্গ এবং রেডাক্স উভয়ই ব্যবহার করা ভাল fine


1
  • আপনার যদি বিভিন্ন উদ্দেশ্যে মিডলওয়্যার ব্যবহার করতে হয়। উদাহরণস্বরূপ লগিং ক্রিয়া, ত্রুটি প্রতিবেদন করা, সার্ভারের প্রতিক্রিয়ার উপর নির্ভর করে অন্যান্য অনুরোধগুলি প্রেরণ করা ইত্যাদি
  • যখন একাধিক প্রান্ত থেকে আগত ডেটাগুলি একক উপাদান / দর্শনকে প্রভাবিত করে।
  • আপনি যখন আপনার অ্যাপ্লিকেশনগুলিতে ক্রিয়াকলাপের উপর আরও বেশি নিয়ন্ত্রণ রাখতে চান। রেডাক্স ট্র্যাকিং ক্রিয়া এবং ডেটা পরিবর্তন সক্ষম করে, এটি ডিবাগিংকে ব্যাপকভাবে সরল করে।
  • আপনি যদি সার্ভারের প্রতিক্রিয়া না চান তবে সরাসরি আপনার আবেদনের অবস্থা পরিবর্তন করতে পারেন। রেডাক্স একটি স্তর যুক্ত করে, যেখানে আপনি কীভাবে, কখন এবং কখন এই ডেটা প্রয়োগ করা উচিত তা সিদ্ধান্ত নিতে পারেন। পর্যবেক্ষক প্যাটার্ন। পুরো অ্যাপ্লিকেশন জুড়ে একাধিক প্রকাশক এবং গ্রাহক তৈরি করার পরিবর্তে আপনি কেবলমাত্র উপাদানগুলি রেডাক্স স্টোরের সাথে সংযুক্ত করুন।

থেকে: রেডাক্স কখন ব্যবহার করবেন?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.