DOMPP does not use a component system.
Instead, reusable UI can be created
using plain JavaScript functions that
return native DOM elements.
Each returned element can contain
its own isolated local state.
// =====================================
// FACTORY
// =====================================
function createCard(title) {
return document
.createElement("div")
.setAttributes({
class: "card"
})
// ===============================
// LOCAL STATE
// ===============================
.setState({
likes: 0
})
// ===============================
// REACTIVE TREE
// ===============================
.setChildren(({ state, setState }) => [
// =============================
// TITLE
// =============================
document
.createElement("h2")
.setText(title),
// =============================
// REACTIVE COUNT
// =============================
document
.createElement("div")
.setAttributes({
class: "likes"
})
.setText(
`${state.likes}`
),
// =============================
// BUTTON
// =============================
document
.createElement("button")
.setText(
"Like"
)
.setEvents({
click() {
setState({
likes:
state.likes + 1
});
}
})
]);
}
// =====================================
// APP
// =====================================
app
.setChildren(
document
.createElement("div")
.setAttributes({
class: "grid"
})
.setChildren(
createCard("Card A"),
createCard("Card B"),
createCard("Card C")
)
);