Elm reactor og moduler
Skrevet av: Alexander Perry
Introduksjon
Denne oppgaven innfører moduler, som lar oss bruke kode som andre har skrevet. Når vi forstår moduler, er vi klare for elm reactor, som viser oss en webapplikasjon vi har skrevet i vår egen fil.
Før du starter, må du ha gjennomført innstallasjonen i oppgave 2.
Lag din egen nettside!
Aktiviteter
import Html
main = Html.text "Hei, verden!"
For å se nettsiden i en nettleser, må vi først gjøre om nettsiden vår til HTML. HTML er språket som forteller en nettleser om hvordan en nettside skal se ut. Se web-kurset for å lære mer om HTML og nettsider.
elm-reactor 0.18.0
Listening on http://localhost:8000/
Det betyr at Elm venter på at du skal åpne http://localhost:8000/ i en nettleser. Finn så igjen filen hei.elm.

Første gang du åpner filen, vil du få opp dette vinduet:

Nå leser Elm gjennom filen din og gjør den om til vanlig HTML!
-
-
Endre
"Hei, verden!"til"Hei, alle sammen!" -
Lagre filen
-
Last nettleseren på nytt.
-
Skjedde det noe?
-
Ting du kan prøve
Når noe går galt
Elm prøver så godt den kan å hjelpe oss å skrive korrekte programmer. Når vi har gjort noe rart, sier den ifra. Endre oppgave1a.elm til følgende:
import Html
main = Html.taxt "Hei, verden!"
Elm svarer følgende:
Cannot find variable `Html.taxt`.
3| main = Html.taxt "Hei, verden!"
^^^^^^^^^
`Html` does not expose `taxt`. Maybe you want one of the following?
Html.text
Dette betyr:
-
Jeg vet ikke hva
Html.taxtbetyr -
Du prøvde å bruke
Html.taxtpå linje 3 -
Kanskje du mente å skrive
Html.text?
Del nettsiden opp i moduler
Denne filen er akkurat lik nettsiden vår i forrige oppgave. Men denne gangen vil vi at andre skal kunne bruke den på deres nettsider. Da må vi starte med å fortelle at denne filen skal være en modul.
module Knapper exposing (..)
Filen Knapper.elm inneholder nå en modul kalt Knapper!
Dette gir oss en feilmelding. Modulen vår inneholder ingenting ennå!
module Knapper exposing (..)
import Html exposing (button, text)
okKnapp = button [] [text "Ok!"]
import Html exposing (button, text) importerer Html-modulen, som gjør at vi kan bruke Html-elementer i modulen vår. Siden vi skal bruke elementene button for å lage en knapp og text for å legge tekst på knappen, må vi legge til (button, text) når vi importerer Html-modulen.
import Knapper
main = Knapper.okKnapp
På samme måte som vi importerer Html-elementer med import Html, kan vi importere våre egne elementer med import Knapper. okKnapp er en del av modulen Knapper, på samme måte som at text er en del av Html-modulen. Så vi kan skrive Knapper.okKnapp for å lage en okKnapp.
module Knapper exposing (..)
import Html exposing (button, text)
import Html.Attributes exposing (..)
okKnapp = button [] [text "Ok!"]
stiligKnapp = button [styling] [text "Stilig!"]
styling =
style
[ ("border-radius", "100%")
, ("padding", "10px")
, ("font-size", "5em")
, ("text-align", "center")
, ("background", "red")
, ("color", "blue")
]
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!








