DOM++ allows stateful elements
to exist inside other stateful elements.
This example demonstrates how
nested runtime ownership behaves
when parent and child state mutate
independently.
// =====================================
// CHILD ELEMENT
// =====================================
function createChildCounter() {
return document
.createElement("div")
.setState({
count: 0
})
.setChildren(({
state,
setState
}) => [
document
.createElement("h3")
.setText(
`Child Count: ${state.count}`
),
document
.createElement("button")
.setText(
"Increment Child"
)
.setEvents({
click() {
setState({
count:
state.count + 1
});
}
})
]);
}
const child =
createChildCounter();
// =====================================
// PARENT ELEMENT
// =====================================
const parent =
document
.createElement("div")
.setState({
count: 0
})
.setChildren(({
state,
setState
}) => [
document
.createElement("h2")
.setText(
`Parent Count: ${state.count}`
),
child
]);