Redux یک ابزار مدیریت State است. اگرچه اغلب همراه با فریم ورک React مورد استفادهی توسعه دهندگان قرار می گیرد ولی امکان استفاده از آن در کنار دیگر فریم ورک ها و کتابخانه های جاوا اسکریپت نیز امکان پذیر است. Redux با توجه به Dependencies حدود 2 کیلوبایت حجم دارد، بنابراین سایز Asset های اپلیکیشن را افزایش نمی دهد.
در حقیقت با استفاده از ریداکس، State های اپلیکیشن در یک مخزن نگهداری میشوند و دسترسی هر کامپوننت به تمامی State ها نیز امکان پذیر است.
بیشتر کتابخانه ها نظیر React ،Angular و غیره ویژگی هایی دارند که به کامپوننت ها این امکان را میدهد تا به صورت داخلی و بدون دخالت هرگونه ابزار بیرونی، حالت (State) خود را مدیریت کنند. این موضوع برای اپلیکیشنهایی که کامپوننت های کم تعدادی دارند صدق می کند اما هرچقدر که یک پروژه بزرگتر میشود مدیریت State اشتراکی بین کامپوننت های آن امری بسیار گیج کننده و دشوار خواهد شد.
دانستن این موضوع که یک State در چه مکانی باید قرار داشته باشد در اپلیکیشنی که دیتا در بین مولفه های آن تقسیم می شود امری پیچیده به شمار می رود. به عبارت دیگر در حالت ایده آل دیتا فقط باید در یک کامپوننت قرار داشته باشد اما تقسیم آن در بین کامپوننت های یکسان کار آسانی به نظر نمی رسد. نحوه کارکرد Redux بسیار ساده است به گونه ای که یک مخزن مرکزی تمام State های یک اپلیکیشن را در خود ذخیره می کند و هر کدام از کامپوننت ها بدون نیاز به ارسال props، می توانند به State های ذخیره شده دسترسی داشته باشند.