2015-08-11 6 views
5

Quanto è facile usare i plugin jQuery già pronti in Elm? Sto solo iniziando a imparare Elm lang e sono curioso di sapere se è possibile utilizzare i dropdown della Semantic UI nella mia applicazione. Come si dovrebbe affrontare tale compito? Senza librerie come Semantic UI è piuttosto difficile creare dropdown appropriati per i dispositivi mobili, ad esempio, e scrivere da zero tutto quel codice sembra reinventare la ruota.Wire up Elm lang e Semantic UI

+0

Penso che ciò di cui hai bisogno è [ports] (http://elm-lang.org/guide/interop) –

+0

Potresti elaborare? Creo una porta per ogni menu a discesa e la aggiorno ogni volta che una parte corrispondente dello stato è stata modificata nella funzione 'update'? Sembra una tonnellata di caldaia. –

+0

Ho anche questo problema, avendo già un sito in semantic-ui. – alesch

risposta

6

Non è una buona idea. L'olmo è puro Ciò significa che per ogni dato stato, possiamo generare l'interfaccia utente. E per cambiare l'interfaccia utente in modo programmatico, lo stato deve cambiare.
L'intera ragione per usare Elm è dovuta alla convinzione che l'impurità sia difficile da ragionare, e la purezza è preferita.

jQuery consente a un'azione di leggere direttamente & modificare l'interfaccia utente senza modificare lo stato dell'applicazione. È impuro.

Così Elm e jQuery sono fondamentalmente in disaccordo e probabilmente finirete in un casino cercando di far lavorare i due insieme.

Probabilmente il modo più semplice per procedere è trovare una libreria CSS che non richiede JS, che fornisce un insieme ragionevole di componenti con cui lavorare (ad esempio http://purecss.io/) e utilizzare Elm insieme a quello.

+3

Le librerie esterne sono un caso d'uso piuttosto comune. Eliminare tonnellate di libs esterne perché impure non è un'opzione. Non puoi reinventare la ruota ogni giorno. L'ecosistema js deve essere utilizzabile. – schlicht

+1

@schlicht l'intera filosofia di un linguaggio puro è "impura non è un'opzione". Detto questo, lo stato mutabile esterno può essere isolato e rappresentato come un segnale e trasformato in esso modellato come effetti e applicato come attività. Ma poi perdi molti benefici. – z5h

+1

Non sono affatto d'accordo, l'obiettivo è di ridurre al minimo l'impurità e solo il contatto con esso era necessario. Senza programmi di effetti collaterali diventa piuttosto noioso. E da un punto di vista pratico è impossibile rifare tutto ciò di cui si potrebbe aver bisogno in olmo. – schlicht

4

Non conosco specificamente jQuery, ma Elm ha uno Ports/Interop System specifico per l'utilizzo di librerie Javascript esistenti ed evitare di reinventare troppe ruote. Non l'ho usato ma potrebbe adattarsi alle tue esigenze.