[][src]Crate virtual_dom_rs

virtual-dom-rs provides a virtual dom implementation as well as an html! macro that you can use to generate a virtual dom.

The virtual dom works on both the client and server. On the client we'll render to an HtmlElement, and on the server we render to a String.

Re-exports

pub extern crate web_sys;

Modules

console
prelude

Exports structs and macros that you'll almost always want access to in a virtual-dom powered application

virtual_node_test_utils

A collection of functions that are useful for unit testing your html! views.

Macros

html

Used to generate VirtualNode's from a TokenStream.

Structs

CharacterData

The CharacterData object

Closure

A handle to both a closure in Rust as well as JS closure which will invoke the Rust closure.

Comment

The Comment object

CreatedNode

A node along with all of the closures that were created for that node's events and all of it's child node's events.

Document

The Document object

DomTokenList

The DOMTokenList object

DomUpdater

Used for keeping a real DOM node up to date based on the current VirtualNode and a new incoming VirtualNode that represents our latest DOM state.

Element

The Element object

Event

The Event object

EventTarget

The EventTarget object

Events

We need a custom implementation of fmt::Debug since JsValue doesn't implement debug.

HtmlCollection

The HTMLCollection object

HtmlElement

The HTMLElement object

HtmlInputElement

The HTMLInputElement object

InputEvent

The InputEvent object

IterableNodes

Used by the html! macro for all braced child nodes so that we can use any type that implements Into

MessageEvent

The MessageEvent object

MouseEvent

The MouseEvent object

Node

The Node object

NodeList

The NodeList object

Text

The Text object

VElement
VText
Window

The Window object

Worker

The Worker object

Enums

Patch

A Patch encodes an operation that modifies a real DOM element.

VirtualNode

When building your views you'll typically use the html! macro to generate VirtualNode's.

Traits

View

A trait with common functionality for rendering front-end views.

Functions

diff

Given two VirtualNode's generate Patch's that would turn the old virtual node's real DOM node equivalent into the new VirtualNode's real DOM node equivalent.

patch

Apply all of the patches to our old root node in order to create the new root node that we desire. This is usually used after diffing two virtual nodes.

window

Getter for the Window object

Type Definitions

DynClosure

Box<dyn AsRef>> is our js_sys::Closure. Stored this way to allow us to store any Closure regardless of the arguments.