awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
O

omcljs/om

0
View on GitHub↗
6,631 星标·352 分支·Clojure·3 次浏览

Om

Om is a frontend state management library and reactive user interface framework that integrates ClojureScript functional programming with the React virtual DOM rendering engine. It provides a bridge to build responsive web interfaces where visual elements automatically update when underlying application data changes.

The project centers on a normalized state store that flattens complex data structures into a relational format. This data is accessed through a reader-based querying system, which decouples the user interface from the state by allowing components to declare specific data requirements that are resolved through a centralized read function.

State is managed via atomic mutations and transactions, ensuring that global application state transitions trigger targeted re-renders of dependent components. The framework also covers client-server data synchronization, identity-based data resolution, and the ability to render components to strings for server-side content delivery.

Features

  • ClojureScript-React Bridges - Integrates ClojureScript functional programming models with the React rendering engine to build reactive user interfaces.
  • Reader-Based State Querying - Evaluates specific expressions to extract targeted pieces of application state using a dedicated reading function.
  • Frontend State Normalization - Flattens complex nested data structures into a relational format for efficient storage and retrieval within the application state.
  • Data Value Normalization - Flattens complex data structures into a relational format and reconstructs them into trees for the interface.
  • Expression-Based Data Querying - Evaluates specific expressions to extract targeted pieces of application state using a dedicated reading function.
  • Frontend State Management - Implements a centralized state management architecture for handling data flow and synchronization in the browser.
  • State Mutations - Implements atomic state mutations to ensure global application state transitions trigger targeted re-renders of dependent components.
  • Atomic State Mutations - Implements atomic state mutations to ensure global application state transitions trigger targeted re-renders of dependent components.
  • Store Normalization Architectures - Maintains application data in a flat map using unique identities to prevent duplication and simplify updates.
  • Declarative Data Fetching - Specifies the exact data a component needs and manages the parameters used to fetch those updates dynamically.
  • Functional Reactive Programming Frameworks - Combines functional programming patterns with a reactive rendering engine to automatically update the user interface.
  • Identity-Based Data Resolution - Transforms flat data structures into hierarchical trees by resolving references between entities during the rendering phase.
  • Reader-Based Querying - Decouples the user interface from state by allowing components to declare data requirements resolved through a centralized read function.
  • State-to-UI Mapping - Decouples state from the visual layer by transforming raw application state into formatted data for UI display.
  • Global State Managers - Stores shared data in a central location so any component can access it regardless of its position in the tree.
  • Reactive UI Frameworks - Provides a framework for building interfaces that automatically update their visual state in response to data changes.
  • UI Components - Enables the creation of reusable UI components that encapsulate their own data requirements and identity resolution.
  • Virtual DOM Reconciliation - Maps a functional component tree to a real document object model using a diffing engine to update only changed elements.
  • User Interface Frameworks - Provides a functional API for interacting with a virtual DOM to create responsive web user interfaces.
  • Client-Server State Synchronization - Manages the synchronization and coherence between remote server state and local client caches.
  • Transactional Updates - Applies a group of data changes as a single unit to trigger updates across all dependent interface elements.
  • Dynamic Query Parameterization - Allows the parameters of a data request to be changed during execution to update displayed information.
  • Functional Components - Combines pure functional declarations with stateful lifecycle methods to build a reactive user interface hierarchy.
  • Data Merging - Combines new data fragments into the current application state and signals all affected components to refresh.
  • Client-Server State Synchronization - Coordinates data requests and updates using a reconciliation process that aligns local state with remote data sources.
  • Component State Management - Provides methods for managing component-level data and scheduling visual refreshes.
  • React Interface - Powerful interface for building complex React-based applications.

Star 历史

omcljs/om 的 Star 历史图表omcljs/om 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Om 的开源替代方案

相似的开源项目,按与 Om 的功能重合度排序。
  • day8/re-frameday8 的头像

    day8/re-frame

    5,532在 GitHub 上查看↗

    re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur

    Clojureclojurescriptre-framereact
    在 GitHub 上查看↗5,532
  • reagent-project/reagentreagent-project 的头像

    reagent-project/reagent

    4,872在 GitHub 上查看↗

    Reagent is a framework for building web user interfaces using ClojureScript and React.js. It enables a functional programming approach to declarative UI design, where HTML structures and component hierarchies are defined using vector-based Hiccup syntax instead of JSX. The project differentiates itself through a reactive state management system based on atoms. It tracks which components dereference specific state atoms to trigger automatic re-renders and provides state cursors to isolate updates to specific paths of a larger state atom. It also includes utilities for wrapping native JavaScrip

    Clojureclojureclojurescriptfrontend
    在 GitHub 上查看↗4,872
  • facebook/reactfacebook 的头像

    facebook/react

    245,669在 GitHub 上查看↗

    React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional data flow.

    JavaScriptjavascriptuifrontend
    在 GitHub 上查看↗245,669
  • reactive/data-clientreactive 的头像

    reactive/data-client

    2,031在 GitHub 上查看↗

    Data-client is an asynchronous state management library designed to synchronize server data with frontend applications. It functions as a normalized cache manager that maps complex API responses into structured, relational entities, ensuring data consistency across the entire application. By providing a unified communication layer, the library supports both REST and GraphQL, allowing developers to bind network data directly to user interface components through declarative hooks. The library distinguishes itself through a robust architecture for optimistic user interface development, where loc

    TypeScriptexpofetchhooks
    在 GitHub 上查看↗2,031
查看 Om 的所有 30 个替代方案→

常见问题解答

omcljs/om 是做什么的?

Om is a frontend state management library and reactive user interface framework that integrates ClojureScript functional programming with the React virtual DOM rendering engine. It provides a bridge to build responsive web interfaces where visual elements automatically update when underlying application data changes.

omcljs/om 的主要功能有哪些?

omcljs/om 的主要功能包括:ClojureScript-React Bridges, Reader-Based State Querying, Frontend State Normalization, Data Value Normalization, Expression-Based Data Querying, Frontend State Management, State Mutations, Atomic State Mutations。

omcljs/om 有哪些开源替代品?

omcljs/om 的开源替代品包括: day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… reagent-project/reagent — Reagent is a framework for building web user interfaces using ClojureScript and React.js. It enables a functional… facebook/react — React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional… reactive/data-client — Data-client is an asynchronous state management library designed to synchronize server data with frontend… frejs/fre — This project is a concurrent UI library and virtual DOM framework. It functions as a state management system and… learnapollo/learnapollo — This project is an interactive learning resource and tutorial for implementing the Apollo GraphQL client. It provides…