Skip to content

Instantly share code, notes, and snippets.

@carbide-public
Created April 4, 2017 05:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carbide-public/5e37d0d0105948af2d7215a299ccf46a to your computer and use it in GitHub Desktop.
Save carbide-public/5e37d0d0105948af2d7215a299ccf46a to your computer and use it in GitHub Desktop.
react-mobx
import { counter, message } from './states'
export function increment () {
if (counter.count >= 5) {
message.setText('over 10')
} else {
message.setText()
counter.addCount(1)
}
}
export function decrement () {
message.setText()
counter.addCount(-1)
}
export function reset () {
message.setText('reset')
counter.setCount(0)
}
import React, { Component } from 'react'
import { observer } from 'mobx-react'
import { counter, message } from './states'
import { increment, decrement, reset } from './actions'
@observer
class Root extends Component {
render() {
return <div>
<div>count is {counter.count}</div>
<input type='button' value='increment' onClick={increment}/>
<input type='button' value='decrement' onClick={decrement}/>
<input type='button' value='reset' onClick={reset}/>
<div>{message.text}</div>
</div>
}
}a
export { Root }
import React from 'react'
import { render } from 'react-dom'
import { Root } from './containers.js'
render(<Root/>, document.querySelector('#root'))
import { observable } from 'mobx'
class Counter {
@observable count
constructor () {
this.count = 0
}
addCount (n) {
this.count += n
}
setCount (n) {
this.count = n
}
}
const counter = new Counter
class Message {
@observable text
constructor () {
this.text = ''
}
setText (n = '') {
this.text = n
}
}
const message = new Message
export { counter, message }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment