# Solid Patterns ## Reactive State ### Signals Basic reactive state with signals: ```tsx import { createSignal } from "solid-js" function Counter() { const [count, setCount] = createSignal(0) return ( Count: {count()} setCount(c => c - 1)}> - setCount(c => c + 1)}> + ) } ``` ### Derived State Compute values from signals: ```tsx import { createSignal, createMemo } from "solid-js" function PriceCalculator() { const [quantity, setQuantity] = createSignal(1) const [price, setPrice] = createSignal(9.99) // Derived value - only recalculates when dependencies change const total = createMemo(() => quantity() * price()) const formatted = createMemo(() => `$${total().toFixed(2)}`) return ( Quantity: {quantity()} Price: ${price()} Total: {formatted()} ) } ``` ### Effects React to state changes: ```tsx import { createSignal, createEffect, onCleanup } from "solid-js" function AutoSave() { const [content, setContent] = createSignal("") createEffect(() => { const text = content() // Debounced save const timeout = setTimeout(() => { saveToFile(text) }, 1000) // Cleanup on next run or disposal onCleanup(() => clearTimeout(timeout)) }) return (