> For the complete documentation index, see [llms.txt](https://docs.aurelia.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aurelia.io/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation.md).

# Observation

Observe changes in your applications.

Aurelia provides a multitude of different wants to observe properties in your components and call a callback function when they change.

The following sections in the observation documentation will help you decide which observation strategy is appropriate for your applications, from the most commonly used to more advanced observation strategies.

## The @observable approach

The easiest way to watch for changes to specific view model properties is using the `@observable` decorator which provides an easy way to watch for changes to properties and react accordingly.

{% content-ref url="/pages/-McvVSk3zi-E-E2svIN\_" %}
[Observing property changes with @observable](/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation/observing-property-changes-with-observable.md)
{% endcontent-ref %}

## Effect observation approach

While still using the `@observable` API, the effect observation approach has more boilerplate and is convenient for instances where you want to observe one or more effects. Examples include when the user moves their mouse or other changes you might want to watch, independent of the component lifecycle.

{% content-ref url="/pages/-McvWX9W0vjsu1bbzIXF" %}
[Effect observation](/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation/effect-observation.md)
{% endcontent-ref %}

## HTML observation approach

Unlike other forms of observation, HTML observation is when you want to watch for changes to specific properties on elements, especially for web component properties.

{% content-ref url="/pages/-McvY5WmQ8avazc2SnBu" %}
[HTML observation](/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation/html-observation.md)
{% endcontent-ref %}

## The observer locator approach

The observer locator API allows you to observe properties for changes manually. In many instances, you will want to use `@observer` or `@watch` however, the observer locator can be useful in situations where you want to watch the properties of objects.

{% content-ref url="/pages/-McvWoxBMGC1jLWYfRdg" %}
[Using observerLocator](/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation/using-observerlocator.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.aurelia.io/~/revisions/NShYVVc01DvYc5bgBiwq/getting-to-know-aurelia/observation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
