Om
ClojureScript interface to Facebook's React
Install / Use
/learn @omcljs/OmREADME
Om
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
A ClojureScript UI framework and client/server architecture over Facebook's React.
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.
Dependency Information
Latest release: 1.0.0-beta1
Leiningen and Boot dependency information:
[org.omcljs/om "1.0.0-beta1"]
Maven dependency information:
<dependency>
<groupId>org.omcljs</groupId>
<artifactId>om</artifactId>
<version>1.0.0-beta1</version>
</dependency>
Example
(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"))
Tutorials
There is an Quick Start tutorial that will introduce you to the core concepts of Om here. There are also a variety of other guides here.
Documentation
There is documentation here
Contributing
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.
Community
If you are looking for help please get in touch either on the clojurians.slack.com #om channel or the om-cljs Google Group.
References
- Worlds: Controlling the Scope of Side Effects
- A Functional I/O System
- Directness and Liveness in the Morphic User Interface Construction Environment
- Learnable Programming
- Relay
- Falcor
- GraphQL
- Datomic pull syntax
Copyright and license
Copyright © 2013-2017 David Nolen
Licensed under the EPL (see the file epl.html).
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
340.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.2kCommit, push, and open a PR
