Skip to content

Instantly share code, notes, and snippets.

@trueadm
Last active March 7, 2019 16:18
Show Gist options
  • Save trueadm/4a938f2ffb5ae65d9384ede7bee4310f to your computer and use it in GitHub Desktop.
Save trueadm/4a938f2ffb5ae65d9384ede7bee4310f to your computer and use it in GitHub Desktop.
// "counter.react"
import {format} from 'externalLib';
state {
// acts like default state
counter = 0;
}
props {
// acts like default props
maxCounter = 10;
}
view {
<div className="container">
<button onClick={increment}>{format(state.counter)}</button>
</div>
}
function increment(e) {
setState(state => {
if (state.counter < props.maxCounter) {
return {
counter: state.counter + 1
};
}
return null;
});
}
// "counter.react"
import {format} from 'externalLib';
state {
// acts like default state
counter = 0;
}
props {
// acts like default props
maxCounter = 10;
}
export function render() {
return (
<div className="container">
<button onClick={increment}>{format(state.counter)}</button>
</div>
);
}
function increment(e) {
setState(state => {
if (state.counter < props.maxCounter) {
return {
counter: state.counter + 1
};
}
return null;
});
}
// "counter.react"
import {format} from 'externalLib';
state {
// acts like default state
counter = 0;
}
props {
// acts like default props
maxCounter = 10;
}
events {
function increment(e) {
setState(state => {
if (state.counter < props.maxCounter) {
return {
counter: state.counter + 1
};
}
return null;
});
}
}
<style>
.container {
color: red;
background: {props.backgroundColor}
}
</style>
<view>
<div className="container">
<button onClick={increment}>{format(state.counter)}</button>
</div>
</view>
// "counter.react"
import {format} from 'externalLib';
state {
// acts like default state
counter = 0;
}
props {
// acts like default props
maxCounter = 10;
}
reducer {
increment: state => ({
counter: state.counter + 1,
})
}
view {
<div className="container">
<button onClick={increment}>{format(state.counter)}</button>
</div>
}
// "counter.react"
import {format} from 'externalLib';
import {setState} from "react";
let counter = 0;
function increment(props, e) {
setState(() => {
if (counter < props.maxCounter) {
counter++
}
});
}
export function render(props) {
return (
<div className="container">
<button onClick={increment}>{format(counter)}</button>
</div>
);
}
export const defaultProps = {
maxCounter: 10,
};
// "counter.react"
import {format} from 'externalLib';
import {setState} from 'react';
component {
let counter = 0;
function increment(props, e) {
setState(() => {
if (counter < props.maxCounter) {
counter++
}
});
}
export function render(props) {
return (
<div className="container">
<button onClick={increment}>{format(counter)}</button>
</div>
);
}
export const defaultProps = {
maxCounter: 10,
};
}
// "counter.js"
import {format} from 'externalLib';
import {createStatefulComponent} from 'react';
export defaut createStatefulComponent(({render, defaultProps, setState}) => {
let counter = 0;
function increment(props, e) {
setState(() => {
if (counter < props.maxCounter) {
counter++
}
});
}
render((props) => {
return (
<div className="container">
<button onClick={increment}>{format(counter)}</button>
</div>
);
});
defaultProps({
maxCounter: 10,
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment