Skip to content

render()

Mount a Flexium component to the DOM.

Import

ts
import { render } from 'flexium/dom'

Signature

ts
function render(element: JSX.Element, container: HTMLElement): () => void

Usage

Basic Usage

tsx
import { render } from 'flexium/dom'

function App() {
  return <div>Hello, Flexium!</div>
}

render(<App />, document.getElementById('root')!)

With Cleanup

tsx
const dispose = render(<App />, document.getElementById('root')!)

// Later, to unmount
dispose()

Multiple Roots

tsx
render(<Header />, document.getElementById('header')!)
render(<Sidebar />, document.getElementById('sidebar')!)
render(<Main />, document.getElementById('main')!)

Dynamic Mounting

tsx
function mountWidget(containerId: string) {
  const container = document.getElementById(containerId)
  if (container) {
    return render(<Widget />, container)
  }
}

const disposeWidget = mountWidget('widget-container')

// Cleanup when needed
disposeWidget?.()

Parameters

ParameterTypeDescription
elementJSX.ElementThe component or element to render
containerHTMLElementThe DOM element to render into

Returns

  • dispose () => void - Function to unmount and cleanup the rendered content

Behavior

  • Appends content to the container (doesn't replace)
  • Creates reactive subscriptions for signals
  • Cleans up subscriptions and effects on dispose
  • Supports multiple render calls to same container

Notes

  • Call dispose to prevent memory leaks when unmounting
  • Container must exist in the DOM before calling render
  • Each render call is independent

Demo

See Also

Released under the MIT License.