Wpis z mikrobloga

Redux, dla mnie nie ma do końca sensu, cała idea jest super, globalny stage, ale po #!$%@? tworzyć actions ja ma się reducers, to wygląda teraz, jak byście poszli do sklepu i krzyknęli głośno "jestem głodny" i czekali aż ekspedient podejdzie i da Ci do ręki jedzenie, zamiast samemu coś z półki wziąć...


#programowanie #redux #react
  • 9
@aptitude: no to chyba jednak do końca nie zrozumiałeś idei. Actions wywołują określone zachowanie (a także najczęściej przekazują dane), które mają wpaść do store'a poprzez reducer. Po drodze możesz jeszcze używać middleware'ów np. rxjs gdzie wtedy flow wygląda tak, że wywołujesz akcję, trafiają one do epicków i następnie gotowe dane są przekazywane do reducerów. Jest porządek i jest to logiczne. Jakbyś chciał żeby inaczej to działało?
@Rst00: disclaimer: nigdy nie pisałem frontendu. Z tego co rozumiem zamiast wywołać konkretną akcję mógłbym wywołać konkretny reducer. Mogłbyś opisać jakie dodatkowe zalety daje rozgraniczenie na akcję i reducer? To co pisze na stronie "Enforcing that every change is described as an action lets us have a clear understanding of what’s going on in the app. If something changed, we know why it changed" nie przemawia do mnie w żaden sposób.
@Rst00: innymi słowami: czemu muszę robić coś takiego

export default (state = 0, action) => {
switch (action.type) {
case 'INCREMENT':
return state + 1
default:
return state
}

// gdzies dalej w kodzie

store.dispatch({ type: 'INCREMENT' })}

gdzie wystarczyłoby zrobić coś takiego

function increment(state) {
return state + 1;
}

// gdzies dalej w kodzie

store.dispatch({ function: increment })}

Co nie jest możliwe do zrobienia w podejściu, które opisuje?
@Saly: są chociażby narzędzia do podglądu odpalania akcji - Redux DevTools i tam masz listę wszystkich akcji - możesz patrzeć co było wykonywane po kolei, jaki miało wpływ na store itd. Pozwala też zachować czystość w kodzie bo do danej funkcjonalności robisz sobie pliki actions, reducer i możesz w łatwy sposób tym wszystkim zarządzać.

W prostych przykładach może się wydawać że to nie ma sensu, jest głupie itd. ale gdybyś rozważył