Delegate a method
Use
method.
attributes to directly delegate to internal component methods:<App>
<H3>Method Delegation Example</H3>
<Button
label="Open Modal"
onClick="myModal.openDialog()" />
<MyModalWrapper id="myModal" title="Hello World!" />
</App>
<Component
name="MyModalWrapper"
method.openDialog="internalModal.open()"
method.close="internalModal.close()">
<ModalDialog
id="internalModal"
title="{$props.title}"
maxWidth="400px">
<VStack>
<Text>This uses method.openDialog="internalModal.open()"</Text>
<Text>Direct delegation - no custom logic needed</Text>
<Button
label="Close"
onClick="internalModal.close()" />
</VStack>
</ModalDialog>
</Component>
<App>
<H3>Method Delegation Example</H3>
<Button
label="Open Modal"
onClick="myModal.openDialog()" />
<MyModalWrapper id="myModal" title="Hello World!" />
</App>
<Component
name="MyModalWrapper"
method.openDialog="internalModal.open()"
method.close="internalModal.close()">
<ModalDialog
id="internalModal"
title="{$props.title}"
maxWidth="400px">
<VStack>
<Text>This uses method.openDialog="internalModal.open()"</Text>
<Text>Direct delegation - no custom logic needed</Text>
<Button
label="Close"
onClick="internalModal.close()" />
</VStack>
</ModalDialog>
</Component>
Use delegation when: You want to expose internal methods directly without adding custom logic.
Pros: Simple, no JavaScript needed, clean syntax
Cons: No custom logic, just passes through calls
See also: Expose a method from a component for adding custom logic to methods.