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
risposta
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.
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
@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
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
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.
Penso che ciò di cui hai bisogno è [ports] (http://elm-lang.org/guide/interop) –
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. –
Ho anche questo problema, avendo già un sito in semantic-ui. – alesch