Jon Kuperman

@jonkuperman.com

TC39 - Signals - Source Maps - TS/JS @Bloomberg. Previously I did web at Adobe and Twitter. Opinions are my own.

Don't forget! Tickets are on sale now for @nodeconf.eu The conference is being held in beautiful Bologna, Italy on September 29th and 30th We've got a fantastic agenda, wonderful sponsors, and Italian food. The food alone is worth the trip.

Happy to announce Octane – the successor to Inferno. React’s programming model, compiled. Hooks, Suspense and Actions, compiled ahead of time. No virtual DOM. No Rules of Hooks. No manually maintained dependency arrays. The compiler understands what your code. octanejs.dev

// Counter.tsrx — hooks next to output, no rules of hooks
import { useState, useEffect } from 'octane';

export function Counter(props) @{
	const [count, setCount] = useState(0);

	// A hook behind a condition is fine — slots are
	// assigned by call site, not call order.
	if (!props.paused) {
		useEffect(() => {
			console.log('count is now', count);
		}); // the compiler infers [count]
	}

	<button onClick={() => setCount(count + 1)}>{'Count: ' + count}</button>
}