NOTE: This project is no longer under active development. If you'd like to use a library that's well maintained that was inspired by some of the ideas presented here see Fulcro
Om UIs are out of the box snapshotable and undoable and these operations have no implementation complexity and little overhead.
Om borrows ideas liberally from Facebook's Relay and Netflix's Falcor with a dash of inspiration from Datomic pull syntax to avoid the typical incidental complexity that arises from client/server state management.
Latest release: 1.0.0-beta1
Maven dependency information:
<dependency> <groupId>org.omcljs</groupId> <artifactId>om</artifactId> <version>1.0.0-beta1</version> </dependency>
(ns example (:require [goog.dom :as gdom] [om.dom :as dom] [om.next :as om :refer [defui]])) (defui Hello Object (render [this] (dom/h1 nil "Hello, world!"))) (def hello (om/factory Hello)) (.render js/ReactDOM (hello) (gdom/getElement "example"))
There is documentation here
Please contact me via email to request an electronic Contributor Agreement. Once your electronic CA has been signed and returned to me I will accept pull requests.
- Worlds: Controlling the Scope of Side Effects
- A Functional I/O System
- Directness and Liveness in the Morphic User Interface Construction Environment
- Learnable Programming
- Datomic pull syntax
Copyright and license
Copyright © 2013-2017 David Nolen
Licensed under the EPL (see the file epl.html).