# Qwik Scratchpad ```typescript= import {x} from '...' let nu = 20; function foo() { return nu++; } function Counter(props) { const [count, blablabla] = useState(props.initial); state.count++ state.blablabla() return ( <span>{count}</span> <button onClick={() => setCount(count + props.step + extraStep)}> + </button> ); } ``` --- ```typescript= export const Counter = qComponent({ onMount: (props) => { const [count, setCount] = useState(props.start); const extraStep = foo(); setState(0, count); setState(1, setCount); setState(2, extraStep); setState(number, json | ) }, onRender: qHook(), }); export const Counter_onRender = qHook(() => { const count = getState(0); const setCount = getState(1); const extraStep = getState(2); return ( <span>{count}</span> <button onClick={QRL`...`.with([extraStep])}>+</button> ); }); export const Counter_onClick = qHook((props, state, args) => { const [count, setCount] = getState(0); const [extraStep] = args; return setCount(count + props.step + extraStep); }); ``` --- ```typescript= import {x} from '...' let nu = 20; function foo() { return nu++; } function CounterPreamble = function(props, state) { const [count, setCount] = useState(props.initial); const nu = 20; const extraStep = nu + 20; return [count, setCount, extraStep]; } export const Counter_onMount = (props, state) => { return CounterPreamble(props.initial); } extra const Counter_onRender_click = function(props, state) { const [count, setCount, extraStep] = state; return setCount(count + props.step + extraStep)} } function Counter(props, state) { const [count, setCount, extraStep] = CounterPreamble(props, state) return ( <span>{count}</span> <button onClick={QRL`...`}> + </button> ); } ```