Hello World
Have a look at the simplest example with Conan State.
This is our attempt to wow you, note that this is only a sample of all the different ways to work with ConanState
Easy to create and render
To create a Conan State you only need a name, and optionally, an initial state
//name: counter, initialState: 0
const yetAnotherCounter$ = Conan.light('counter', 0)Conan has live rendering, meaning, you can inline the state in your renderer.
function render() {
return yetAnotherCounter$.renderLive (
(counterValue)=>(<h1>{counterValue}</h1>)
)
}
Easy to update
Every ConanState has two actions available immediately: 'update' and 'updateAsap'.
Let's add some buttons now tow change the state of the counter:
function render() {
return (<div>
yetAnotherCounter$.renderLive (
(counterValue)=>(<h1>{counterValue}</h1>)
)
<button onClick={()=>yetAnotherCounter$.do.update(3)}>
setValueTo3
</button>
<button onClick={()=>yetAnotherCounter$.do.update(current=>++current)}>
increase by one
</button>
</div>)
}
Note how we can use the update method to either provide a new value, or we can provide a reducer to provide a value that is based on its current value.
Easy to do async updates
Quick fact, with ConanJs you won't need boilerplate code to deal with asynchronous code.

Let's add two buttons to show async updates to the value.
Easy to derive and compose state
Let's filter only even numbers, and double the current value of the state