# Odo.js

Odo.js is a large collection of tiny modules that can be used together to build web applications.

Simple virtual dom components using the excellent [virtual-dom](https://github.com/Matt-Esch/virtual-dom) library.

Supports:
- Framework free components - users of the component don't need to include or work with odojs
- Components can be mounted into the DOM and updated with state
- Uni-directional data flow
- Virtual-hyperscript is exposed
- Components can be nested
- Widgets get access to the raw DOM elements
- Components can be rendered on the server as a string
- This can be used as the View in MVC type applications

Suggestions:
- Use with other libraries to help with events / observations and data manipulation

[![NPM version](https://badge.fury.io/js/odojs.svg)](http://badge.fury.io/js/odojs)

Inspired by [deku](https://github.com/dekujs/deku).

Wiki links
- [API](https://github.com/odojs/odojs/wiki/home)
- [Component](https://github.com/odojs/odojs/wiki/component)
- [Widget](https://github.com/odojs/odojs/wiki/widget)
- [Hook](https://github.com/odojs/odojs/wiki/hook)
- [DOM](https://github.com/odojs/odojs/wiki/dom)
- [SVG](https://github.com/odojs/odojs/wiki/svg)
- [Partial](https://github.com/odojs/odojs/wiki/partial)
- [Compose](https://github.com/odojs/odojs/wiki/compose)
- [Examples](https://github.com/odojs/odojs/wiki/examples)
