<div class='type'>Composable Function</div>


<a id='references'></a>



<h2 id="update">Overload 1</h2>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
@Composable
public inline fun <T : Any, reified E : Applier<*>> ReusableComposeNode(
    noinline factory: () -> T,
    update: @DisallowComposableCalls Updater<T>.() -> Unit,
)
```


Emits a recyclable node into the composition of type `T`.

This function will throw a runtime exception if `E` is not a subtype of the applier of the
`currentComposer`.

#### Parameters

| | |
| --- | --- |
| factory | A function which will create a new instance of `T`. This function is NOT guaranteed to be called in place. |
| update | A function to perform updates on the node. This will run every time emit is executed. This function is called in place and will be inlined. |






<hr class="docs-overload-divider">


<h2 id="update-content">Overload 2</h2>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
@Composable
public inline fun <T : Any?, reified E : Applier<*>> ReusableComposeNode(
    noinline factory: () -> T,
    update: @DisallowComposableCalls Updater<T>.() -> Unit,
    content: @Composable () -> Unit,
)
```


Emits a recyclable node into the composition of type `T`. Nodes emitted inside of `content` will
become children of the emitted node.

This function will throw a runtime exception if `E` is not a subtype of the applier of the
`currentComposer`.

#### Parameters

| | |
| --- | --- |
| factory | A function which will create a new instance of `T`. This function is NOT guaranteed to be called in place. |
| update | A function to perform updates on the node. This will run every time emit is executed. This function is called in place and will be inlined. |
| content | the composable content that will emit the "children" of this node. |






<hr class="docs-overload-divider">


<h2 id="update-content-2">Overload 3</h2>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
@Composable
@ExplicitGroupsComposable
public inline fun <T, reified E : Applier<*>> ReusableComposeNode(
    noinline factory: () -> T,
    update: @DisallowComposableCalls Updater<T>.() -> Unit,
    noinline skippableUpdate: @Composable SkippableUpdater<T>.() -> Unit,
    content: @Composable () -> Unit,
)
```


Emits a recyclable node into the composition of type `T`. Nodes emitted inside of `content` will
become children of the emitted node.

This function will throw a runtime exception if `E` is not a subtype of the applier of the
`currentComposer`.

#### Parameters

| | |
| --- | --- |
| factory | A function which will create a new instance of `T`. This function is NOT guaranteed to be called in place. |
| update | A function to perform updates on the node. This will run every time emit is executed. This function is called in place and will be inlined. |
| skippableUpdate | A function to perform updates on the node. Unlike `update`, this function is Composable and will therefore be skipped unless it has been invalidated by some other mechanism. This can be useful to perform expensive calculations for updating the node where the calculations are likely to have the same inputs over time, so the function's execution can be skipped. |
| content | the composable content that will emit the "children" of this node. |