Какво е споделено състояние?

Споделеното състояние е променлива, обект, свойство на обект или пространство в паметта, което може да бъде достъпно от повече от една функция.

Какъв е проблемът със споделеното състояние?

Случайната промяна на стойността на променлива, която се споделя в цялата кодова база, може да доведе до потенциални и сложни грешки. Такива грешки са трудни за отстраняване и разрешаване.

Вижте примера по-долу

Да, лесно е, но е скъпо

Знам, че е лесно да се напише споделено състояние и да се чете/записва от всяко място в приложението.

За много малки неща е добре, но си представете, че имате 1000 файла и функции със споделено състояние и нямате представа кой файл или функция променя състоянието, умишлено или случайно. В този случай, ако кодовата база се увеличава, грешките се дължат на споделено състояние.

Променливо споделено състояние и Неизменно споделено състояние

За споделено неизменно състояние е безвредно, тъй като никой няма да може директно да го промени. Пример за това е управлението на състоянието на React.

За променливо споделено състояние трябва да следим историята или промените, направени в него. Също така ще е необходим заключващ механизъм. Което е скъпо.

Дори ако последователността от извикващи функции се промени, изходът ще се промени.

Как да коригирам проблема с променливо споделено състояние?

Избягвайте споделено състояние и докато пишете код, пишете логика, така че да няма споделено състояние. Все още имате нужда от споделено състояние?

Използвайте някой от методите по-долу

A) Копирайте, докато го използвате.

B) Копирайте в източника.

Предотвратете случайни и неумишлени промени

Основният фокус на „Избягване на споделено състояние“ е предотвратяване на случайни актуализации на променливи променливи. Но може би си мислите, какво ще стане, ако наистина трябва да променим стойността на променлива променлива? Например, ако имаме конфигурационна променлива или свойство в обект прозорец, което има ефект върху цялото приложение.

Разбира се, можем да го променим умишлено. Но препоръчителният начин за това е наличието на функция (setter). Предимствата на функцията за настройка е, че можете да регистрирате или проследявате директните промени в променливите променливи на състоянието.

Състояние в реакция

Много от вас може да са объркани като мен. Че обикновено използваме състояние в реакция. Това също е нещо споделено, тогава защо да реагирате позволено споделено състояние.

Причината е, че реакцията никога не позволява споделено състояние. Състоянието, което използваме в реакция, е неизменно състояние по свой собствен начин. Не можете директно да промените състоянието в реакция. За да промените което и да е състояние, трябва да извикате функцията setState или да използвате функцията за обратно извикване в случай на кука. Това е мястото, където реагира добавената неизменност. Тези функции вътрешно никога не променят директно стойността на състоянието.

Честито ! току-що научихте нова концепция за функционално програмиране.