Redux সঙ্গে প্রতিক্রিয়া? 'প্রসঙ্গ' ইস্যুটির কী হবে?


90

আমি সাধারণত স্ট্যাকের সাথে কোড সম্পর্কিত স্টাফ পোস্ট করি তবে সম্প্রদায়ের সাধারণ চিন্তাভাবনা কী তা নিয়ে এটি আরও একটি প্রশ্ন।

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

রেডাক্স

এই পৃষ্ঠার নীচে: http://redux.js.org/docs/basics/UsageWithReact.html (স্টোর পাস করা) এটি প্রতিক্রিয়াটির প্রসঙ্গে "ম্যাজিক" ব্যবহার করার পরামর্শ দেয়।

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

বিকল্পটি যা আমরা সুপারিশ করি তা হ'ল ম্যাজিকভাবে সমস্ত ধারক উপাদানগুলির জন্য স্টোরটি উপলভ্য করার জন্য ডাকা একটি বিশেষ প্রতিক্রিয়া Redux উপাদান ব্যবহার করা ...

প্রতিক্রিয়া

প্রতিক্রিয়া প্রসঙ্গে পৃষ্ঠাতে ( https://facebook.github.io/react/docs/context.html ) এর শীর্ষে একটি সতর্কতা রয়েছে:

প্রসঙ্গটি একটি উন্নত এবং পরীক্ষামূলক বৈশিষ্ট্য। ভবিষ্যতে প্রকাশিত সংস্করণগুলিতে এপিআই পরিবর্তন হতে পারে।

তারপরে নীচে:

স্পষ্ট কোড লেখার সময় যেমন বৈশ্বিক চলকগুলি সর্বোত্তমভাবে এড়ানো যায়, আপনার বেশিরভাগ ক্ষেত্রে প্রসঙ্গ ব্যবহার করা এড়ানো উচিত ...

উপাদানগুলির মাধ্যমে আপনার মডেল ডেটা পাস করার জন্য প্রসঙ্গ ব্যবহার করবেন না। আপনার ডেটা স্পষ্টভাবে গাছের মাধ্যমে থ্রেড করা বোঝা আরও সহজ ...

তাই ...

রেডাক্স store'প্রপস' এর মাধ্যমে প্রতিটি উপাদানগুলিতে নীচে যাওয়ার পরিবর্তে 'প্রতিক্রিয়া' বৈশিষ্ট্যটি ব্যবহার করার পরামর্শ দেয়। প্রতিক্রিয়া বিপরীত সুপারিশ করার সময়।

এছাড়াও, মনে হয় ড্যান আব্রামভ (রেডাক্সের স্রষ্টা) এখন আমাকে আরও বিভ্রান্ত করার জন্য ফেসবুকের (রিএ্যাক্টের স্রষ্টা) কাজ করে।

  • আমি কি ঠিক এই সব পড়ছি ..?
  • এই বিষয়ে সাধারণ বর্তমান sensকমত্য কী ..?

8
আহ এটি একটি দুর্দান্ত প্রশ্ন, আমি অন্যের মতামত শুনতে খুব আগ্রহী! আলোচনার দিকের কারণে এটি বন্ধ হয়ে যাবে বলে আমি কিছুটা ভয় করি। আমি সত্যিই এটি আশা করি না।
mjohnsonengr

উত্তর:


90

প্রসঙ্গটি একটি উন্নত বৈশিষ্ট্য এবং এটি পরিবর্তন সাপেক্ষে। কিছু ক্ষেত্রে এর সুবিধাগুলি এর উতরাইয়ের চেয়ে বেশি হয় তাই কিছু লাইব্রেরি যেমন রিয়েট রেডাক্স এবং রিএ্যাক্ট রাউটার পরীক্ষামূলক প্রকৃতি সত্ত্বেও এটির উপর নির্ভর করতে পছন্দ করে।

এখানে গুরুত্বপূর্ণ অংশটি হ'ল লাইব্রেরি শব্দ । যদি প্রসঙ্গটি এর আচরণ পরিবর্তন করে তবে গ্রন্থাগারের লেখক হিসাবে আমাদের সামঞ্জস্য করতে হবে । তবে, যতক্ষণ না লাইব্রেরি আপনাকে সরাসরি প্রসঙ্গ এপিআই ব্যবহার করতে বলবে না, ব্যবহারকারী হিসাবে আপনাকে এটিতে পরিবর্তনগুলি নিয়ে চিন্তা করতে হবে না।

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

চূড়ান্ত প্রতিক্রিয়া Redux এখনও সর্বদা প্রপ হিসাবে স্টোর পাসিং সমর্থন করে তাই আপনি যদি প্রসঙ্গটি সম্পূর্ণরূপে এড়াতে চান তবে আপনার পছন্দ আছে। তবে আমি বলব এটি অযৌক্তিক।

টিএলডিআর: আপনি কী করছেন তা যদি আপনি সত্যিই না জানেন তবে সরাসরি প্রসঙ্গ ব্যবহার করা এড়িয়ে চলুন। অভ্যন্তরীণভাবে প্রসঙ্গে নির্ভর করতে এমন একটি লাইব্রেরি ব্যবহার করা তুলনামূলকভাবে নিরাপদ।


4
ঠিক আছে ড্যান। ঝুঁকিটি হ'ল, যদি ভবিষ্যতে প্রকাশে রিএ্যাক্ট পুরোপুরি প্রসঙ্গটি সরিয়ে দেয় তবে সম্ভবত বিদ্যমান কোনও রেডাক্স অ্যাপ্লিকেশন আপডেট করার জন্য পুনরায় কাজ করা প্রয়োজন। রেডাক্স ব্যবহারকারীদের এমন পরিবর্তন থেকে রক্ষা করতে সক্ষম হবেন না। আপনি এখন ফেসবুকের সাথে মিল রেখে, সুসংবাদটি হ'ল আশা করি প্রসঙ্গটি যদি কখনও চলে যায় তবে আপনার প্রচুর অগ্রিম বিজ্ঞপ্তি হবে।
কোরি হাউস

6
প্রতিক্রিয়া প্রসঙ্গে সরিয়ে ফেলবে না। মানে, এটি প্রযুক্তিগতভাবে সম্ভব, তবে এটি বিদ্যমান থাকার পুরো কারণটি এফবির অভ্যন্তরে অসংখ্য পণ্যগুলির প্রয়োজন ছিল। সুতরাং সমতুল্য সমাধান না হলে এটি দূরে যাবে না won't তবে এর সঠিক এপিআই পরিবর্তন হতে পারে যা আমরা ব্যবহারকারীদেরকে রক্ষা করি।
ড্যান আব্রামভ

4
আরেকটি গুরুত্বপূর্ণ নোটটি হ'ল ভবিষ্যতে কম বেশি প্রসঙ্গে প্রসঙ্গটি ব্যবহার করার পরিকল্পনা রয়েছে। আমরা মনে করি এটি স্টাইলিং, অ্যানিমেশন, অঙ্গভঙ্গি পরিচালনা ইত্যাদির জন্য কার্যকর প্রমাণিত হতে পারে
ড্যান আব্রামভ

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

4
@ ডানআব্রামভ নতুন কনটেক্সট এপিআই সম্পর্কে কী বলছেন? এটি এখনও ব্যবহার করার পরামর্শ দেওয়া হয় না?
স্টানিস্লাভ মেয়রভ

4

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

আমি যখন আমার উপাদানগুলি পরীক্ষা করি, আমি নন মোড়ানো উপাদান পরীক্ষা করি test কারণ রিঅ্যাক্ট-রেডেক্স কেবলমাত্র সেই উপাদানটিতে আমার প্রয়োজনীয় প্রপসগুলি পাস করেছিল, আমি এখন পরীক্ষাগুলি লিখতে গিয়ে আমার ঠিক কী প্রপসগুলির প্রয়োজন তা আমি জানি।

আমি মনে করি বিন্দুটি হ'ল, আমি কখনই আমার কোডে শব্দ প্রসঙ্গটি দেখি না, আমি এটি গ্রাস করি না, তাই নির্দিষ্ট পরিমাণে, এটি আমাকে প্রভাবিত করে না! এটি ফেসবুকের "পরীক্ষামূলক" সতর্কবার্তা সম্পর্কে কিছুই বলে না .. প্রসঙ্গটি যদি অদৃশ্য হয়ে যায় তবে আমি রেডাক্স আপডেট না হওয়া পর্যন্ত অন্য সবার মতোই হতবাক হয়ে যাব।


আকর্ষণীয় ... আমি দেখতে পাচ্ছি যে আপনি 'রিঅ্যাক্ট-রেডেক্স' ব্যবহার করে Providerএবং connectসমস্ত প্রবন্ধের জিনিসগুলি বিমূর্ত করার জন্য কী বোঝাতে চেয়েছেন । আমার ধারণা, ড্যান আব্রামভ এখন এফবিতে থাকাকালীন আপনি আশাবাদী যে কনটেক্সট যদি রেডাক্স পরিবর্তন করে এবং 'রিঅ্যাক্ট-রেডেক্স' আপডেট হয়ে যায় ... তবে কোনও গ্যারান্টি নেই, এবং এফবি'র "পরীক্ষামূলক" সতর্কতা এখনও দেখার জন্য এখনও রয়েছে।
স্টিফেন শেষ

আমি অবশ্যই আশাবাদী যে যদি এফবি কোনও প্রসঙ্গে কিছু না ঘটে সে ক্ষেত্রে লুপে রিঅ্যাক্ট-রিডিক্স না রাখে, আমার চেয়ে রিডেক্সের সাথে আরও পরিচিত কোনও ওপেন-সোর্স অবদানকারী; যদি তা না হয়, আমি তা খুঁজে বের করব এবং নিজেই করব!
mjohnsonengr

আমি ড্যানকে টুইটারের মাধ্যমে তার ধারণাগুলির জন্য জিজ্ঞাসা করেছি ... একই লাইন বরাবর চমৎকার উত্তর ... লাইব্রেরিটি যা কনটেক্সট ব্যবহার করে তা ব্যবহার করুন, সরাসরি ব্যবহার করবেন না।
স্টিফেন শেষ

1

একটি এনপিএম মডিউল রয়েছে যা প্রতিক্রিয়া প্রসঙ্গে রিডেক্সকে যুক্ত করা সত্যিই সহজ করে তোলে

https://github.com/jamrizzi/redux-context-provider

https://www.npmjs.com/package/redux-context-provider

import React, { Component } from 'react';
import ReduxContextProvider from 'redux-context-provider';
import createStore from './createStore';
import actions from './actions';
import Routes from './routes';

export default class App extends Component {
  render() {
    return (
      <ReduxContextProvider store={store} actions={actions}>
        <Routes />
      </ReduxContextProvider>
    );
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.