Component

Components provide real-time, stateful UI elements that update automatically via WebSocket.

Including Component

class MyComponent
  include Azu::Component

  def content
    "<div>Hello</div>"
  end
end

Required Methods

content

Return the HTML content of the component.

def content : String
  <<-HTML
  <div id="my-component">
    <p>Count: #{@count}</p>
  </div>
  HTML
end

Returns: String - HTML content

Lifecycle Methods

mount

Called when component is first connected.

Parameters:

  • socket - WebSocket connection

unmount

Called when component is disconnected.

Instance Methods

push_state

Push current state to client, triggering re-render.

push_append

Append content to an element.

Parameters:

  • selector : String - CSS selector

  • html : String - HTML to append

push_prepend

Prepend content to an element.

push_replace

Replace an element's content.

push_remove

Remove an element.

Event Handling

on_event

Define event handlers.

Parameters:

  • event_name : String - Event name from client

  • &block - Handler block (optionally receives event data)

Client-Side Events

Event Attributes:

  • azu-click - Click event

  • azu-change - Change event

  • azu-submit - Form submit

  • azu-keyup - Key up event

  • azu-keydown - Key down event

  • azu-focus - Focus event

  • azu-blur - Blur event

Data Attributes:

  • azu-value - Value to send with event

  • azu-model - Two-way data binding

Properties

property

Define component properties.

Usage in HTML:

State Management

Registration

Registering with Spark

Client Setup

JavaScript Connection

Component Mounting

Complete Example

See Also

Last updated

Was this helpful?