From 29cc06cc0caeb08c2b09923d999f5bde030d8718 Mon Sep 17 00:00:00 2001 From: Aiden Bai Date: Sun, 25 Apr 2021 15:30:02 -0700 Subject: [PATCH] feat: event-based lifecycle hooks --- src/component.ts | 3 +++ src/core/render.ts | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/component.ts b/src/component.ts index 3ececd9..ed1a47f 100644 --- a/src/component.ts +++ b/src/component.ts @@ -37,6 +37,9 @@ export class Component { setElementCustomProp(rootEl, COMPONENT_FLAG, this); + const mountedEvent = new CustomEvent('mount'); + rootEl.dispatchEvent(mountedEvent); + return this.state; } diff --git a/src/core/render.ts b/src/core/render.ts index a79e30c..8e2c1a1 100644 --- a/src/core/render.ts +++ b/src/core/render.ts @@ -55,6 +55,12 @@ const render = ( } } } + + // Effect is like a watcher but detects changes to an el + if (node.directives['on:effect']) { + const effectEvent = new CustomEvent('effect'); + node.el.dispatchEvent(effectEvent); + } } })(); };