---
# System prepended metadata

title: 'API DOCS for: `on-watch.public.ts`'

---

# API DOCS for: `on-watch.public.ts`
---

# `onWatch`

Reruns the `watchFn` when the observed inputs change.

Use `onWatch` to observe changes on a set of inputs, and then re-execute the `watchFn` when those inputs change.

The `watchFn` only executes if the observed inputs change. To observe the inputs use the `obs` function to wrap property reads. This creates subscriptions which will trigger the `watchFn` to re-run.

See: `Observer`

@public

## Example

The `onWatch` function is used to observe the `state.count` property. Any changes to the `state.count` cause the `watchFn` to execute which in turn updates the `state.doubleCount` to the double of `state.count`. 

<docs code="./watch.examples.tsx#onWatch"/>


@param watch - Function which should be re-executed when changes to the inputs are detected
@public



# `Observer`

Used to signal to Qwik which state should be watched for changes.

The `Observer` is passed into the `watchFn` of `onWatch`. It is intended to be used to wrap state objects in a read proxy which signals to Qwik which properties should be watched for changes. A change to any of the properties cause the `watchFn` to re-run.

## Example

The `obs` passed into the `watchFn` is used to mark `state.count` as a property of interest. Any changes to the `state.count` property will cause the `watchFn` to re-run.

<docs code="./watch.examples.tsx#onWatch"/>


See: `onWatch`

@public