Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/logux/redux

Redux compatible API for Logux
https://github.com/logux/redux

logux redux

Last synced: 1 day ago
JSON representation

Redux compatible API for Logux

Awesome Lists containing this project

README

        

# Logux Redux

Logux is a new way to connect client and server. Instead of sending
HTTP requests (e.g., AJAX and GraphQL) it synchronizes log of operations
between client, server, and other clients.

* **[Guide, recipes, and API](https://logux.org/)**
* **[Issues](https://github.com/logux/logux/issues)**
and **[roadmap](https://github.com/orgs/logux/projects/1)**
* **[Projects](https://logux.org/guide/architecture/parts/)**
inside Logux ecosystem

This repository contains Redux compatible API on top of [Logux Client].


Sponsored by Evil Martians

[Logux Client]: https://github.com/logux/client

## Install

```sh
npm install @logux/core @logux/client @logux/redux redux
```

## Usage

See [documentation] for Logux API.

```js
import { CrossTabClient, log } from '@logux/client'
import { createStoreCreator } from '@logux/redux'

let userId = document.querySelector('meta[name=user]').content
let token = document.querySelector('meta[name=token]').content

const client = new CrossTabClient({
subprotocol: '1.0.0',
server: 'wss://example.com:1337',
userId,
token
})

const createStore = createStoreCreator(client)

const store = createStore(reducers, preloadedState)
log(store.client)

export default store
```

```js
import { Provider } from 'react-redux'
import ReactDOM from 'react-dom'

import store from './store'
import App from './App'

ReactDOM.render(
,
document.getElementById('root')
)
```

```js
import { useSubscription } from '@logux/redux'

export const User = ({ id, name }) => {
const isSubscribing = useSubscription([`user/${ id }`])
if (isSubscribing) {
return
} else {
return

{ name }


}
}
```

[documentation]: https://logux.org