Gdzie powinienem umieścić kodowanie logiczne w mojej aplikacji zareagowało


Zrobiłem więc prostą aplikację do wyszukiwania Json, którą możesz wyświetlić na pasku zadań. Szuka tagów nagłówka i Json i zwraca wszelkie dopasowania:

http://codepen.io/ghozt12/pen/LVaxLM
http://codepen.io/ghozt12/pen/LVaxLM
Opiera się na przykładzie podanym na stronie React (

https://facebook.github.io/rea ... .html
https://facebook.github.io/rea ... .html
).
Nie rozumiem jednak, co zrobić z logiką filtrującą wyniki wyszukiwania. Jeśli React to po prostu V w MVC, czy logika biznesowa nie powinna wchodzić w model? Ale React to tylko punkt widzenia, więc gdzie idzie logika?
Specjalnie dla mojej aplikacji umieściłem kod wyszukiwania w tej klasie reagowania i chciałem wiedzieć, czy to jest właściwe miejsce, aby go umieścić? (zobacz mój kod po szczegóły).
var Table = React.createClass({
render: function() {// CODE THAT FILTERS SEARCH RESULTS GOES HERE
// creates rowTitle array return (
<div>
{rowsTitle}

);
}
});

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak powiedziałeś, warto reagować tylko w MVC. Więc gdzie umieszczasz swoją logikę biznesową?
Jeśli chodzi o logikę biznesową zorientowaną na prezentację, dobrze jest umieścić ją na komponencie, tak jak zrobiłeś. Jeśli logika biznesowa znajduje się w składniku, będzie znajdować się w module obsługi zdarzeń, module renderującym lub dowolnej innej metodzie składnika.
Jeśli masz logikę biznesową niezwiązaną z widokiem i działa ona na kliencie (lub zarówno na kliencie, jak i na serwerze), zawsze dobrze jest wyodrębnić ją w oddzielnym module JavaScript. React nie działa dobrze z AMD, więc lepiej nie używać RequireJS do modulacji. Powinieneś prawdopodobnie użyć

Browserify
http://browserify.org/
lub

Webpack
http://webpack.github.io/... W tym przypadku wszystko, co musisz zrobić, to dodać to na początku pliku komponentu:
var myBusinessLogic = require ('./ myBusinessLogic')
. Możesz teraz delegować przetwarzanie do tego modułu. Jest to preferowana metoda, ponieważ moduły JavaScript można łatwo testować za pomocą Jest, Jasmine, Karma lub Mocha.
Istnieje również trzeci scenariusz, w którym delegujesz logikę biznesową do serwera. Możesz bezpośrednio wywoływać Ajax API na serwerze, aby wykonać to przetwarzanie, lub możesz skorzystać z bardziej skomplikowanej metody i użyć Flux. Istnieje wiele implementacji Flux, takich jak Alt, Redux i Fluxxor. Wolę mieć własną implementację Fluxa przy użyciu domyślnego dyspozytora. Wewnątrz
ActionCreators
wywołuję metodę w
clientApi
(moduł JS), która wykonuje wywołanie Ajax przy użyciu

Axios
https://github.com/mzabriskie/axios
na serwer. To wywołanie jest obsługiwane przez usługę Express Route, która ostatecznie deleguje logikę biznesową do
serverApi
.

EDIT
: Właśnie przeniosłem się do Redux :)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz umieścić logikę w każdym komponencie klasy i komponencie aplikacji. Logika w komponencie klasy dla tego stanu i logika w komponencie aplikacji dla całej aplikacji

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się