Glossary
A comprehensive list of terms and concepts used throughout the Refract framework and documentation.
A
Animation API
Refract's built-in system for declaring animations directly in component definitions. Supports spring physics, keyframes, and gesture-based animations without external libraries.
Async Streams
A pattern in Refract for handling asynchronous data flows using stream-based updates. Enables reactive UI updates based on async events like API calls or user interactions.
Auto-memoization
Refract's compiler feature that automatically optimizes components by memoizing expensive computations without explicit developer intervention.
B
Batched Updates
A performance optimization where multiple state changes are grouped and applied in a single render cycle, reducing unnecessary re-renders.
Bridge Pattern
The architectural pattern used by lenses to connect props, state, and lifecycle methods in a unified interface.
C
Compiler
Refract's build-time tool that analyzes and optimizes your code, performing transformations for better runtime performance and smaller bundle sizes.
Component
The fundamental building block of Refract applications. Components are pure functions that return JSX and receive a lens as their primary interface.
const MyComponent = createComponent(({ lens }) => {
return <div>Hello World</div>;
});
Composition
The pattern of building complex UIs by combining simpler components. Refract emphasizes composition over inheritance.
Computed Refraction
A derived state value that automatically updates when its dependencies change, similar to computed properties in other frameworks.
createApp
The main function used to initialize a Refract application and mount it to the DOM.
createApp(App).mount('#root');
createComponent
The primary function for defining Refract components. Takes a pure function that receives a lens object.
D
Declarative
A programming paradigm where you describe what the UI should look like rather than how to achieve it. Refract uses declarative syntax for components, animations, and state management.
Dependency Caching
Optical composition's feature that intelligently caches results based on dependencies, preventing unnecessary recalculations.
Derived State
State values computed from other state values, automatically updating when dependencies change.
DevTools
Browser extension and development tools for debugging Refract applications, inspecting component trees, and monitoring state changes.
E
Effect
Side effects in Refract are controlled operations that interact with external systems (APIs, DOM, timers). Managed through useEffect, useOptic, and useFlash.
Event Delegation
Refract's optimization technique where event listeners are attached to parent elements rather than individual child elements.
F
Fiber Architecture
Refract's internal reconciliation algorithm inspired by React Fiber, enabling incremental rendering and better performance for complex UIs.
Fragment
A wrapper component that allows returning multiple elements without adding extra DOM nodes.
<Fragment>
<Child1 />
<Child2 />
</Fragment>
Functional Component
Components defined as pure functions rather than classes, the standard way of creating components in Refract.
G
Global Refraction
A refraction that exists outside component scope and can be accessed from anywhere in the application, useful for app-wide state like themes or user data.
const theme = globalRefraction('light');
H
Hydration
The process of attaching event listeners and state to server-rendered HTML, making it interactive on the client side.
Higher-Order Component (HOC)
A pattern for reusing component logic by wrapping components with additional functionality.
Hot Module Replacement (HMR)
Development feature that updates modules in the browser without full page reload, preserving application state.
I
Incremental Rendering
Refract's ability to break rendering work into chunks, preventing UI blocking for complex updates.
Interpolation
The process of embedding JavaScript expressions within JSX using curly braces {}.
J
JSX
JavaScript XML syntax extension used in Refract for describing UI structure. Transpiled to function calls at build time.
const element = <div className="container">Hello</div>;
K
Keyed Updates
Optimization for list rendering where each item has a unique key, enabling efficient updates when list items change.
L
Lazy Loading
Technique for loading components or resources only when needed, reducing initial bundle size.
Lens
The primary interface provided to Refract components, offering unified access to props, state, and lifecycle methods.
createComponent(({ lens }) => {
const state = lens.useRefraction(0);
const props = lens.props;
});
Lifecycle
The stages a component goes through from creation to destruction. Refract provides hooks for mounting, updating, and unmounting.
Local Refraction
A refraction scoped to a specific component instance, isolated from other components.
M
Memoization
Caching technique to avoid recalculating expensive operations when inputs haven't changed.
Mount
The process of attaching a Refract component tree to a DOM element.
Mutation
Direct modification of refraction values using the .set() method, triggering reactive updates.
N
Native Events
Browser DOM events that Refract components can listen to using standard event handlers.
O
Observable Pattern
The reactive programming pattern underlying refractions, where changes to state automatically notify and update subscribers.
Optic
A reusable unit of UI logic in Refract, similar to React hooks but with enhanced caching and animation capabilities.
function useCounter() {
const count = useRefraction(0);
return { count, increment: () => count.set(count.value + 1) };
}
Optical Composition
Refract's system for composing and reusing UI logic through optics, providing modular patterns for common functionality.
Optimization
Various techniques Refract uses to improve performance, including compile-time optimizations, auto-memoization, and virtual DOM diffing.
P
Portal
A way to render children into a DOM node that exists outside the parent component's DOM hierarchy.
Props
Properties passed from parent to child components, accessed through the lens interface.
Pure Function
A function that always returns the same output for the same input and has no side effects. Refract components are pure functions.
Q
Query
In Refract context, often refers to data fetching patterns or searching through component trees in DevTools.
R
Reactive
Programming paradigm where the UI automatically updates in response to state changes. Core to Refract's architecture.
Reconciliation
The process of comparing virtual DOM trees and determining minimal DOM updates needed.
Refract
The framework itself, named after the optical phenomenon of light bending, symbolizing how data flows through the application.
Refraction
Refract's core reactive state unit. A container for values that triggers UI updates when changed.
const count = useRefraction(0);
count.set(5); // Triggers update
Render
The process of creating virtual DOM from components and updating the actual DOM.
Return Value
What a component function returns, typically JSX describing the UI structure.
S
Scheduler
Refract's internal system for prioritizing and batching updates for optimal performance.
Scope
The context in which variables and refractions exist, either local to a component or global to the application.
Server-Side Rendering (SSR)
Rendering Refract components on the server to send HTML to the client, improving initial load performance and SEO.
Side Effect
Operations that affect systems outside the component, like API calls, timers, or DOM manipulation.
Signal
Alternative term sometimes used for refractions, referring to reactive state primitives.
State
Data that changes over time in an application. In Refract, state is managed through refractions.
Static Site Generation (SSG)
Pre-rendering Refract applications at build time to create static HTML files.
Stream
Continuous flow of data updates that components can subscribe to for reactive updates.
Subscription
The connection between a component and a refraction, enabling automatic updates when the refraction changes.
Suspense
Pattern for handling async operations with loading states and error boundaries.
Synthetic Event
Refract's cross-browser wrapper around native browser events for consistent behavior.
T
Template
The JSX structure returned by a component, defining its visual representation.
Time-travel Debugging
DevTools feature allowing developers to step through state changes over time.
Transition
Animation between different states of a component, managed by Refract's animation API.
Tree Shaking
Build optimization that removes unused code from the final bundle.
TypeScript
Typed superset of JavaScript fully supported by Refract with enhanced type inference.
U
Unmount
The process of removing a component from the DOM and cleaning up its resources.
Update
When a component re-renders due to state or props changes.
useEffect
Hook for managing side effects in components, runs after render.
lens.useEffect(() => {
// Side effect code
return () => {
// Cleanup
};
}, [dependencies]);
useFlash
Special effect hook that runs once after initial render, optimized for animations.
useOptic
Hook for using optical composition patterns within components.
useRefraction
Hook for creating local reactive state within a component.
V
Virtual DOM
In-memory representation of the UI that Refract uses to efficiently calculate DOM updates.
Virtual List
Component pattern for efficiently rendering large lists by only rendering visible items.
W
Watcher
Internal mechanism that monitors refraction changes and triggers updates.
Web Components
Browser-native component standard that Refract can integrate with.
Worker Thread
Background JavaScript thread that Refract can utilize for heavy computations.
X
XML-like Syntax
Refers to JSX, the XML-like syntax used for describing component structure.
Y
Yield
In async contexts, points where Refract can pause expensive operations to maintain UI responsiveness.
Z
Zone
Execution context in Refract that tracks dependencies and effects for proper cleanup and optimization.
Additional Resources
- 📚 Core Concepts Guide - Deep dive into fundamental concepts
- 🔧 API Reference - Complete API documentation
- 💡 Examples - See these terms in action
- ❓ FAQ - Common questions answered
This glossary is continuously updated as Refract evolves. Last updated: 2024