Dynamic Data & Loops
A component doesn't have to hold fixed content. Bind its controls to
dynamic data and the same component shows a
different post everywhere it appears — including once per item inside a loop, which is how
most listings in Oxygen are built.
Dynamic data inside a component
Dynamic data inside a component resolves against the content where the instance renders —
place a component with a Post Title field in a single-post template and each post shows
its own title.
The component itself has no content of its own, which is why the builder offers the
Preview page chooser while you edit one: pick a real post or page and the canvas
resolves dynamic data against it so you can see realistic values while designing. It
affects the editing canvas only.

Repeating a component in a loop
The loop elements — Post Loop Builder, Repeater Field, and Term Loop Builder —
don't hold child elements. Instead, each has a Repeated Block section where you pick a
Component, and the loop renders one instance of it for every item in the query.
Dynamic data inside the component resolves per item, so a single "Post Card" component
with a dynamic title and excerpt becomes a full listing.

The section's Advanced popout can mix things up — alternate components at intervals,
insert static items, or show a fallback component when the query is empty. See
Loops for the details.
Dynamic data or properties?
Both make instances differ, but they answer to different things:
- Dynamic data pulls from the content being rendered — the post in the loop, the term
on the archive, the page in the template. Nobody sets it per placement; it follows the
content. - Properties are set by hand on each instance,
for placements that aren't driven by content at all — three feature cards on a homepage,
each with its own heading.
A component can use both: a card whose heading is dynamic in a loop and whose "Show badge"
toggle is a property.