Всем привет! Прошу помощи в разъяснении следующего момента, уже достаточно долго бьюсь над этим пониманием ! Пишу проект (не spa) без использования ф-ворков таких как vue,angular, react.
Все модули проекта пишутся через классы, на нативном js, к примеру:
class SignIn {
constructor({ form, fields, btn }) {
this.form = document.querySelector(form);
this.fields = this.form.querySelectorAll(fields);
this.btn = this.form.querySelector(btn);
this.init(this.form, this.fields);
this.formData = {
email: "",
password: "",
};
}
submitForm(e) {
e.preventDefault();
// отправка данных
}
changeInput(e) {
this.formData[e.target.name] = e.target.value;
}
render(state) {
if (this.btn !== undefined) {
if (state.loading) {
this.btn.classList.add("btn--loading");
this.btn.setAttribute("disabled", "disabled");
} else {
this.btn.classList.remove("btn--loading");
this.btn.removeAttribute("disabled");
}
}
}
init(form, fields) {
form.addEventListener("submit", (e) => {
this.submitForm(e);
});
fields.forEach((input) => {
input.addEventListener("input", (e) => {
this.changeInput(e);
});
});
}
}
export default SignIn;
1.Оправданно будет использовать в такого рода проектах менеджеры состояний для подобных модулей ?
К примеру при отправке формы я дизейблю форму и показываю лоадер, а при получении данных либо показываю ошибки либо перекидываю на другие страницы и т.д.
2.Стоит ли использовать к примеру redux в таком случае или есть более оправданные библиотеки и подходы для этого ?
3.Или достаточно просто написать отдельный класс для управления селекторами при каком либо действии одного или другого модуля ?
На данный момент всё написанно с участием redux, но есть некоторые проблемы с которыми сталкнулся в этом вопросе
Как вызвать «отдельный рендер»?
Есть ещё идея написать отдельный модуль/класс для отправки и получения данных со своими данными и ичпользовать его как actions из редакса, но без редьюсера и типов.