A Minimal Vide App
The Application Instance
Every Vide application starts by creating a new application instance with the VideApp
:
open Browser
open Vide
let rootComponent = (* ... *)
let host = (* ... *)
let app = VideApp.ForHost(host).CreateAndStartWithUntypedState(rootComponent)
Mounting the App
An application instance needs a container to render the root component. It expects a “host” argument, which is an actual DOM element:
<div id="app"></div>
let host = document.getElementById("app")
It is also possible to mount more than 1 Vide app on a page.
The View Component
The object we are passing into createAndStart
is in fact a component. Every app requires a component that can contain other components as its children.
You can either place your components in separate files with a module, or organize them in any way.
open Vide
open type Html
let rootComponent =
vide {
div.class'("main-view") {
p {
img.src("https://vide-dev.io/logo-vide.svg").width("150px")
}
hr
"The whole Vide world"
}
}
In Vide, a so-called fluent API is used to specify views. All HTML elements are available. Attribute values and event handlers are set using dot-notation. Since some attributes are reserverd keywords in C#, a '
is appended (e.g. class'
).
Content
The children of an element are placed between curly braces. This can happen on a single line:
p { "Hello"; br; "World" }
…or on multiple lines (as shown in the example above), or as a mixture of both.
Empty Elements
Empty elements (like hr
) need no closing tags.
Text
It is also possible to just yield a string, like The whole Vide world
. When strings are yielded, they are interpreted as raw strings not parsed as HTML.