1. Home
  2. /
  3. Preact
  4. /
  5. Counter with Auto-Reset

Counter with Auto-Reset - Preact Typing CST Test

Loading…

Counter with Auto-Reset — Preact Code

Automatically resets when counter exceeds threshold.

import { h } from 'preact';
import { useState } from 'preact/hooks';

function AutoResetCounter() {
	const [count, setCount] = useState(0);
	const threshold = 10;
	const increment = () => setCount(c => (c + 1 > threshold ? 0 : c + 1));
	return (
		<div>
		<h2>Counter: {count}</h2>
		<button onClick={increment}>+</button>
		<button onClick={() => setCount(count - 1)}>-</button>
		<button onClick={() => setCount(0)}>Reset</button>
		</div>
	);
}

export default AutoResetCounter;

Preact Language Guide

Preact is a fast, lightweight JavaScript library for building user interfaces with a React-like API. It emphasizes small bundle size, performance, and compatibility with modern web standards while providing an easy transition for React developers.

Primary Use Cases

  • ▸Small to medium web applications
  • ▸Mobile-first web apps
  • ▸Interactive widgets and components
  • ▸Progressive web apps (PWAs)
  • ▸High-performance client-side rendering

Notable Features

  • ▸Small bundle size (~3KB gzipped)
  • ▸React-compatible API
  • ▸Fast virtual DOM rendering
  • ▸Component-based architecture
  • ▸Optional ecosystem add-ons (preact/compat)

Origin & Creator

Created by Jason Miller and first released in 2015, Preact was designed as a lightweight alternative to React for high-performance web applications.

Industrial Note

Preact excels in projects where bundle size, speed, and React compatibility are crucial, such as mobile-first web apps, embedded widgets, and highly interactive UIs.

More Preact Typing Exercises

Preact Counter ComponentPreact Counter with Step IncrementPreact Counter with Max LimitPreact Counter with HistoryPreact Counter with Dark Mode OnlyPreact Counter with Auto-IncrementPreact Counter with Conditional ThemePreact Full Featured Counter

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher