فلاکس چیست و با ریداکس چه تفاوتی دارد؟
در حال حاضر یکی از زبان های محبوب برای توسعه فرونت react هست . مفهومی در ری اکت وجود داره به نام flux و redux . درباره اینکه flux چیست و چه تفاوتی با redux دراه در ادامه صحبت میکنم.
فلاکس یک معماریه که توسط فیسبوک برای ساخت client side web app ایجاد شده. فلاکس در واقع بیشتر یک پترنه تا یک فریمورک .
فلاکس چیست؟
در اینجا درباره پیاده سازی فلاکس توسط فیسبوک صحبت میکنم.
جریان فلاکس : به این شکله ک در لایه ویو که کامپوننت های ری اکت هستند عملی رو به dispatcher ارسال میکنند. دیسپچر یک event رو emit میکنه به store.
استور چک میکنه که آیا چیزی برای انجام دادن با توجه به رویدادی که از دیسپچر براش اومده داره یا نه. اگر جواب اره باشه شروع به پردازش برای اون رویداد میکنه. کامپوننت ها همواره به تغییرات استور گوش میدن اگر رویدادی براشون ارسال بشه با توجه به اون رویداد خودشون رو آپدیت میکنن.
تفاوت بین flux و redux:
یکی از مهم ترین تفاوت ها بین فلاکس و ریداکس اینه که فلاکس multiple store هست اما ریداکس single store.اصل تفاوت در نوع مدیریت داده ها است .
در ریداکس state ها immutable هستند(غیر قابل تغییرن) ، بنابراین ما یک داده جدید رو به وجود میاریم.
اما در فلاکس ما میتونیم چندین state برا چنیدن کامپوننت داشته باشیم(که این کار باعث بی نظمی میشه).
در فلاکس کامپوننت ها به store event ها گوش میدن برای تغییر ، در ریداکس کامپوننت ها خودشون رو بر اساس تغییر state آپدیت میکنن.
از اونجایی که ریداکس single store (با داشتن چندین reducers ) هس در پیاده سازی و راحتی استفاده دست بالا رو داره.
به عنوان react dev ترجیح میدم از ریداکس استفاده کنم چون کد تمیز و خواناتری رو برای خودم و هر کسی که کد رو بخونه ارایه میده.
امیدوارم مفید باشه
مطلبی دیگر از این انتشارات
مفهوم Hoisting در جاوا اسکریپت
مطلبی دیگر از این انتشارات
تفاوت بین var , let و const
مطلبی دیگر از این انتشارات
ایجاد پیش نمایش لینک در شبکه های مجازی