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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user