Document .once() method and 'loaded' event, update npm packages

Update npm packages including @jqhtml/core

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-03-06 23:50:01 +00:00
parent 198cd42ce1
commit 3294fc7337
22 changed files with 292 additions and 82 deletions

View File

@@ -641,8 +641,8 @@ async add_item() {
| What | Where | Why |
|------|-------|-----|
| `this.on('event', ...)` | `on_create()` | Persists across renders; on_ready() risks infinite loops from event replay |
| `this.sid('child').on('event')` | `on_ready()` | Child component events |
| `this.on/once('event', ...)` | `on_create()` | Persists across renders; on_ready() risks infinite loops from event replay |
| `this.sid('child').on/once('event')` | `on_ready()` | Child component events |
| `this.$sid('elem').on('click')` | `on_render()` or `on_ready()` | Child DOM recreated on render, must re-attach |
### Loading Pattern
@@ -692,6 +692,8 @@ From within component methods:
Fire: `this.trigger('event_name', data)` | Listen: `this.sid('child').on('event_name', (component, data) => {})`
**Methods**: `.on(event, cb)` fires on every occurrence. `.once(event, cb)` fires once then auto-removes. Both fire immediately if event already happened and return `this` for chaining.
**Key difference from jQuery**: Events fired BEFORE handler registration still trigger the callback when registered. This solves component lifecycle timing issues where child events fire before parent registers handlers. Never use `this.$.trigger()` for custom events (enforced by JQHTML-EVENT-01).
### Dynamic Component Creation