Edit tutorial

useOn() / useOnDocument() / useOnWindow() - Programmatic Listeners

There are times when your app needs to add a conditional listener. Sometimes a listener name is unknown, or you need to use an imperative approach to set up a listener.

Qwik provides the following functions to attach a listener:

FunctionDescription
useOn()Listen to events on the current component's root element.
useOnDocument()Listen to events on the document object.
useOnWindow()Listen to events on the window object.

Your task: Set up a click listener on the component to call alert('Hello world!').

Understanding the $

The $ function signals Qwik to lazy load a reference. When setting up a listener with useOn, the second argument is a Qwik URL.

Qwik URLs (QRL) are lazy-loadable references to your code. If useOn took a function directly rather than QRL, it would have to eagerly execute to allocate the listener closure. By using a QRL via the $ function, Qwik can lazy load the closure only as click listener is triggered.

Building preview

Refreshing App output

Compiling the latest client and SSR result for your current code.

No console activity yet

Interact with the app or trigger a render to see client and SSR messages here.