# viewnode
simple view engine, load once, render many times

[![](https://data.jsdelivr.com/v1/package/npm/viewnode/badge)](https://www.jsdelivr.com/package/npm/viewnode)

## demo

* [viewnode-demo](https://github.com/uxnow/viewnode-demo)

## reference

```html
<tag component="component" id?="id">
  if id exists, viewMap[id] will be available
</tag>
```

```javascript

type ViewNode {
  node: HTMLElement
  name: string
}

type ViewMap {
  [key: string]: ViewNode
}

fn RenderOnceFunction(
    el: ViewNode,
    context: Object,
    render: RenderFunction,
    viewMap: ViewMap,
) -> UnloadFunction

fn RenderMultipleFunction(
    el: ViewNode,
    context: Object,
    render: RenderFunction,
    viewMap: ViewMap,
) -> ()

type ComponentMap {
  [name: string]: RenderOnceFunction | RenderMultipleFunction
}

fn LoadFunction() -> ()
fn RenderFunction() -> ()
fn UnloadFunction() -> ()

type App {
    load: LoadFunction,
    render: RenderFunction, 
    unload: UnloadFunction,
}

```

## license

ISC
