Herramientas de usuario

Herramientas del sitio


wiki2:useful-elm

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki2:useful-elm [2020/05/18 16:31]
alfred [SPA]
wiki2:useful-elm [2021/05/01 11:56] (actual)
Línea 1: Línea 1:
 ====== Useful Elm ====== ====== Useful Elm ======
  
 +===== Base structure =====
 +<​code>​
 +module Happened exposing (..)
 +
 +import Browser
 +import Html exposing (div, text)
 +
 +main =
 +  Browser.element
 +    { init = init
 +    , update = update
 +    , subscriptions = subscriptions
 +    , view = view
 +    }
 +
 +type alias Model = 
 +    { number: Int
 +    , flags: Flags
 +    }
 +
 +initialModel : Flags -> Model
 +initialModel flags = { number = 0, flags = flags }
 +
 +subscriptions : Model -> Sub Msg
 +subscriptions model =
 +  Sub.none
 +
 +type alias Flags = 
 +    { value : String
 +    }
 +
 +init : Flags -> (Model, Cmd Msg)
 +init flags = (initialModel flags, Cmd.none)
 +
 +type Msg = NoMsg
 +
 +update msg model =
 +  case msg of
 +    NoMsg -> (model, Cmd.none)
 +
 +view model = div [] [text ("​hello " ++ model.flags.value) ]
 +
 +</​code>​
 +
 +<​code> ​
 +<div id="​elm-app"></​div>​
 +<script src="​{% dstatic '​js/​elm-components.js'​ %}"></​script>​
 +<​script>​
 +  var app = Elm.Happened.init({
 +    node: document.getElementById("​elm-app"​),​
 +    flags: {
 +        value: "​world"​
 +    }
 +  });
 +</​script>​
 +</​code>​
 ===== Language toolbox ===== ===== Language toolbox =====
 ==== Packages ==== ==== Packages ====
Línea 12: Línea 68:
  
 ===== Libraries ===== ===== Libraries =====
 +
 +  * [[https://​www.elm-spa.dev/​|elm-spa]]
 ===== Code Examples ===== ===== Code Examples =====
  
Línea 18: Línea 76:
   * https://​github.com/​rtfeldman/​elm-spa-example   * https://​github.com/​rtfeldman/​elm-spa-example
   * {{ :​wiki2:​elm:​elm-spa-example-master.zip |}}   * {{ :​wiki2:​elm:​elm-spa-example-master.zip |}}
 +
 +==== eCommerce ====
 +
 +  * {{ https://​github.com/​lucamug/​elm-ecommerce }}
 +  * {{ :​wiki2:​elm:​elm-ecommerce-master.zip |}}
 +===== How to... =====
 +
 +==== Add several modules to one js script? ====
 +
 +We will need two "​main"​ modules. Then compile it like this:
 +<​code>​
 +elm make src/​Main1.elm src/​Main2.elm --output=main.js
 +</​code>​
 +
 +After this you can call it like this:
 +<​code>​
 +<div id="​elm-app1"></​div>​
 +<div id="​elm-app2"></​div>​
 +
 +<script src="​main.js"></​script>​
 +<​script>​
 +  var app = Elm.Main1.init({
 +    node: document.getElementById("​elm-app1"​)
 +  });
 +  var app2 = Elm.Main2.init({
 +    node: document.getElementById("​elm-app2"​)
 +  });
 +</​script>​
 +</​code>​
wiki2/useful-elm.1589819481.txt.gz · Última modificación: 2020/05/18 17:31 (editor externo)