Every component is a thin layer over a runes class. Use the classes directly when you want full control of the markup — construct them during component initialisation (they own effects) and spread their prop getters.
Copy to clipboard
Copy to clipboard
The classes
Pass getters to control values:
zoom: () => z, onZoomChange: (v) => (z = v). A plain value is the initial, uncontrolled value.