2016-04-01 36 views
0

Hat jemand Erfahrung mit Redux mit etwas wie Django und eine relationale db verbinden?Verbinden redux mit django und postgres

Hauptsächlich möchte ich in der Lage sein, Daten aus der Datenbank in das initialState Objekt zu laden, das benötigt wird, um einen Redux-Speicher zu erstellen, ohne einen Ajax-Aufruf verwenden zu müssen.

Irgendwelche Vorschläge/Ideen?

Antwort

0

So habe ich es getan, es ist ziemlich hacky, also bin ich offen für andere Möglichkeiten, aber ich wollte sehen, wie die Leistung zwischen einem API-Aufruf für die anfängliche Belastung vs mit dem Django-Framework zu laden würde. Ich habe den Unterschied noch nicht getestet, da ich immer noch die API-Call-Aktionen und Reducer schreibe, aber ich werde updaten, wenn ich dazu komme.

{% block content %} 
<div id="root"></div> 

<script> 
    var Trainee = '{{trainee}}'; 
    var Events = JSON.parse('{{events_bb}}'.replace(/&quot;/g,'"')); 
</script> 

<script type="text/javascript" src="{% static "js/date_fns.min.js" %}"></script> 
<script type="text/javascript" src="{% static "js/underscore-min.js" %}"></script> 
<script type="text/javascript" src="{% static "js/moment.min.js" %}"></script> 
<script type="text/javascript" src="{% static "js/index.js" %}"></script> 
{% endblock %} 

Da ist in meinem initialState.js

var trainee = Trainee; 
var events = Events; 

var initialState = { 
    trainee: trainee, 
    events: events, 
    }; 

module.exports = initialState; 
3

Redux ist standardmäßig nicht mit einem Backend verknüpft und dient nicht dem Zweck.

Redux ist ein Tool zum Verwalten eines Geschäfts in der App, nicht zum Speichern oder Abrufen von Informationen.

Die Art und Weise, wie Sie Informationen von einer externen Quelle abrufen und auf Redux setzen, liegt bei Ihnen. Die meisten Leute benutzen dazu eine API, also können Sie mit Django entweder manuell eine API einrichten oder einen Blick auf Django Rest Framework werfen, der Ihnen leicht eine nette API bringt.

Die Art, wie Sie Redux und die API verbinden, erfolgt über Async-Aktionen, wahrscheinlich mit thunk-Middleware (see the redux doc here). Um Daten beim Laden der Seite zu laden, senden Sie einfach die Aktion, um die Daten beim Start Ihrer App abzurufen.

Sie könnten auch einen Blick auf graphQL werfen, die eine andere Möglichkeit ist, Ihre Geschäftsdaten mit einer Datenbank zu verbinden. Für Django ist die App Graphene. Dieses Setup ist möglicherweise sehr leistungsfähig, aber es ist wahrscheinlich länger einzurichten und aktueller, so dass weniger bullet proff und Änderungen vorbehalten sind. Darüber hinaus könnten APIs auch von mehr Apps als graphQL verwendet werden. Aber GraphQL hat den Vorteil, dass es viel flexibler und einfacher anzupassen ist, sobald es einmal eingerichtet ist.

+0

Apollo-Client (ein GraphQL Client) ist integriert Redux-Datei. Siehe http://docs.apollostack.com/apollo-client/redux.html –

Verwandte Themen