# Dynamic Regions

`New-UDDynamic` allows you to define a dynamic region. Pages themselves are dynamic in nature. This means that every time a page is loaded, it runs the PowerShell for that page. Sometimes, you may want to reload a section of a page rather than the whole page itself. This is when you will want to use dynamic regions.

## Basic Dynamic Region

This dynamic region reloads when the button is clicked.

```powershell
New-UDApp -Title "Hello, World!" -Content {
    New-UDDynamic -Id 'date' -Content {
        New-UDTypography -Text "$(Get-Date)"
    }

    New-UDButton -Text 'Reload Date' -OnClick { Sync-UDElement -Id 'date' }
}
```

![Reload on button click](/files/8iHtc9MQn5KyteU57xND)

## Arguments List

An array of arguments may be passed to the dynamic region.

```powershell
New-UDDynamic -Id 'dynamic_01' -Content {
    New-UDTypography -Text "This is an $($ArgumentList[0]) an $($ArgumentList[1]) in a UDDynamic"
} -ArgumentList @('example of', 'arguments list') 
```

<figure><img src="/files/rhyM7HH0onwWDIFsWsah" alt=""><figcaption><p>utilizing the arguments list</p></figcaption></figure>

You can use `Sync-UDElement` to change the argument values.

```powershell
 New-UDDynamic -id DynamicRegion -ArgumentList 5,'hello' -content {
  foreach($item in $argumentList){
      New-UDTypography -Variant h3 -Text "Item: $item"
  }
 }

 New-UDButton -Text "Sync Dynamic" -onclick {
  Sync-UDElement -id DynamicRegion -ArgumentList 10,'World'
 }
```

## Auto Refresh

Dynamic regions enable the ability to auto refresh components after a certain amount of time. The entire region's script block will be run when autorefreshing.

{% hint style="info" %}
If you have multiple related components that use the same data, consider putting them in the same dynamic region to improve performance.
{% endhint %}

```powershell
    New-UDDynamic -Id 'date' -Content {
        New-UDTypography -Text "$(Get-Date)" -Variant h3
        New-UDTypography -Text "$(Get-Random)" -Variant h3
    } -AutoRefresh -AutoRefreshInterval 1
```

![Auto refresh dynamic region](/files/8Bcv09xrBoEVZgVJx5nN)

## Loading Component

Sometimes refreshing a dynamic component may take some time. For example, if you are querying another service's REST API or a data. Dynamic regions support configuration of the component that shows when the region is reloading. By default, nothing is shown. This can be any app component.

```powershell
    New-UDDynamic -Content {
        Start-Sleep -Seconds 3
        New-UDTypography -Text "Done!"
    } -LoadingComponent {
        New-UDProgress -Circular
    }
```

![Loading component for dynamic region](/files/FedZrx7rctL866omEBVJ)

## API

[New-UDDynamic](https://github.com/ironmansoftware/universal-docs/blob/v5/cmdlets/New-UDDynamic.txt)


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.powershelluniversal.com/apps/components/utilities/dynamic-regions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
