| Copyright | (C) 2016-2018 David M. Johnson |
|---|---|
| License | BSD3-style (see the file LICENSE) |
| Maintainer | David M. Johnson <djohnson.m@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Miso.Html
Contents
Description
Example usage:
import Miso data IntAction = Add | Subtract intView :: Int -> View IntAction intView n = div_ [ class_ "main" ] [ btn_ [ onClick Add ] [ text_ "+" ] , text_ $ pack (show n) , btn_ [ onClick Subtract ] [ text_ "-" ] ]
More information on how to use miso is available on GitHub
- module Miso.Html.Element
- module Miso.Html.Event
- data VTree action where
- newtype View action = View {}
- class ToView v where
- data Attribute action
- = P MisoString Value
- | E ()
- node :: NS -> MisoString -> Maybe Key -> [Attribute action] -> [View action] -> View action
- text :: MisoString -> View action
- newtype Key = Key MisoString
- class ToKey key where
- data NS
- prop :: ToJSON a => MisoString -> a -> Attribute action
- style_ :: Map MisoString MisoString -> Attribute action
- on :: MisoString -> Decoder r -> (r -> action) -> Attribute action
- onWithOptions :: Options -> MisoString -> Decoder r -> (r -> action) -> Attribute action
- onCreated :: action -> Attribute action
- onDestroyed :: action -> Attribute action
- module Miso.Html.Property
Documentation
module Miso.Html.Element
module Miso.Html.Event
Core types and interface
Virtual DOM implemented as a Rose Vector.
Used for diffing, patching and event delegation.
Not meant to be constructed directly, see View instead.
Convenience class for using View
Minimal complete definition
View Attributes to annotate DOM, converted into Events, Props, Attrs and CSS
Constructors
| P MisoString Value | |
| E () |
Smart View constructors
node :: NS -> MisoString -> Maybe Key -> [Attribute action] -> [View action] -> View action #
VNode creation
text :: MisoString -> View action #
VText creation
Key patch internals
Key for specific children patch
Constructors
| Key MisoString |
Convert type into Key, ensure Key is unique
Minimal complete definition
Namespace
Namespace for element creation
Setting properties on virtual DOM nodes
prop :: ToJSON a => MisoString -> a -> Attribute action #
Constructs a property on a VNode, used to set fields on a DOM Node
Setting CSS
style_ :: Map MisoString MisoString -> Attribute action #
Constructs CSS for a DOM Element
import qualified Data.Map as M div_ [ style_ $ M.singleton "background" "red" ] [ ]
Handling events
on :: MisoString -> Decoder r -> (r -> action) -> Attribute action #
For defining delegated events
let clickHandler = on "click" emptyDecoder $ \() -> Action in button_ [ clickHandler, class_ "add" ] [ text_ "+" ]
onWithOptions :: Options -> MisoString -> Decoder r -> (r -> action) -> Attribute action #
For defining delegated events with options
let clickHandler = onWithOptions defaultOptions "click" emptyDecoder $ \() -> Action in button_ [ clickHandler, class_ "add" ] [ text_ "+" ]
Life cycle events
onCreated :: action -> Attribute action #
onCreated action is an event that gets called after the actual DOM
element is created.
onDestroyed :: action -> Attribute action #
onDestroyed action is an event that gets called after the DOM element
is removed from the DOM. The action is given the DOM element that was
removed from the DOM tree.
module Miso.Html.Property