Typescript Frameworks
TypeScript
- React
- Vue 3
- Angular
- Svelte
- Lit
- SolidJS
React implementation using hooks (useEffect and useRef) for managing component lifecycle and references:
tip
Full example project can be found here
import { useEffect, useRef } from 'react';
import {
InitVerificationDetail,
VerificationCompletedDetail,
VerifySpeedUI,
VerifySpeedUIEvent
} from 'verifyspeed-web-ui';
function App() {
const verifySpeedRef = useRef<HTMLElement>(null);
useEffect(() => {
const element = verifySpeedRef.current;
if (element) {
element.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
element.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
return () => {
element.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
element.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
};
}
}, []);
return <verify-speed-ui ref={verifySpeedRef} />;
}
Vue 3 implementation using lifecycle hooks:
tip
Full example project can be found here
<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue';
import {
InitVerificationDetail,
VerificationCompletedDetail,
VerifySpeedUI,
VerifySpeedUIEvent
} from 'verifyspeed-web-ui';
const verifySpeedRef = ref<HTMLElement | null>(null);
onMounted(() => {
const element = verifySpeedRef.value
if (element) {
element.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
)
element.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
)
}
})
//* TIP: Remove event listeners on unmount
onUnmounted(() => {
const element = verifySpeedRef.value
if (element) {
element.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
)
element.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
)
}
})
</script>
<template>
<verify-speed-ui ref="verifySpeedRef" />
</template>
Angular implementation using ViewChild decorator and lifecycle hooks:
tip
Full example project can be found here
import {
Component,
ElementRef,
OnInit,
OnDestroy,
ViewChild,
CUSTOM_ELEMENTS_SCHEMA,
AfterViewInit,
} from '@angular/core';
import {
InitVerificationDetail,
VerificationCompletedDetail,
VerifySpeedUI,
VerifySpeedUIEvent
} from 'verifyspeed-web-ui';
@Component({
selector: 'app-root',
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
template: '<verify-speed-ui #verifySpeed></verify-speed-ui>'
})
export class AppComponent implements OnInit, OnDestroy {
@ViewChild('verifySpeed') verifySpeedRef!: ElementRef<HTMLElement>;
ngAfterViewInit() {
const element = this.verifySpeedRef.nativeElement;
element.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
this.handleInitVerification as unknown as EventListener
);
element.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
this.handleVerificationCompleted as unknown as EventListener
);
}
ngOnDestroy() {
const element = this.verifySpeedRef.nativeElement;
element.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
this.handleInitVerification as unknown as EventListener
);
element.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
this.handleVerificationCompleted as unknown as EventListener
);
}
}
Svelte implementation using lifecycle functions and bind directive:
tip
Full example project can be found here
<script lang="ts">
import { onMount, onDestroy } from 'svelte';
import type { InitVerificationDetail, VerificationCompletedDetail } from 'verifyspeed-web-ui';
import { VerifySpeedUI, VerifySpeedUIEvent } from 'verifyspeed-web-ui';
let verifySpeedRef: HTMLElement;
onMount(() => {
if (verifySpeedRef) {
verifySpeedRef.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
verifySpeedRef.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
}
});
onDestroy(() => {
if (verifySpeedRef) {
verifySpeedRef.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
verifySpeedRef.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
}
});
</script>
<verify-speed-ui bind:this={verifySpeedRef} />
Lit implementation using decorators and lifecycle callbacks:
tip
Full example project can be found here
import { LitElement, css, html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import {
InitVerificationDetail,
VerificationCompletedDetail,
VerifySpeedUI,
VerifySpeedUIEvent,
} from 'verifyspeed-web-ui';
@customElement('verify-speed-wrapper')
export class VerifySpeedWrapper extends LitElement {
connectedCallback() {
super.connectedCallback();
this.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
this.handleInitVerification as unknown as EventListener,
);
this.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
this.handleVerificationCompleted as unknown as EventListener,
);
}
disconnectedCallback() {
super.disconnectedCallback();
this.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
this.handleInitVerification as unknown as EventListener,
);
this.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
this.handleVerificationCompleted as unknown as EventListener,
);
}
render() {
return html`<verify-speed-ui></verify-speed-ui>`;
}
}
Usage in HTML:
<verify-speed-wrapper />
SolidJS implementation using lifecycle and refs:
tip
Full example project can be found here
import { createSignal, onMount, onCleanup } from 'solid-js'
import './App.css'
import { InitVerificationDetail, VerificationCompletedDetail, VerifySpeedUI, VerifySpeedUIEvent } from 'verifyspeed-web-ui'
function VerifySpeed() {
const [verifySpeedRef, setVerifySpeedRef] = createSignal<HTMLElement>();
onMount(() => {
const element = verifySpeedRef();
if (element) {
element.addEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
element.addEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
}
});
onCleanup(() => {
const element = verifySpeedRef();
if (element) {
element.removeEventListener(
VerifySpeedUIEvent.INIT_VERIFICATION,
handleInitVerification as unknown as EventListener
);
element.removeEventListener(
VerifySpeedUIEvent.VERIFICATION_COMPLETED,
handleVerificationCompleted as unknown as EventListener
);
}
});
return <verify-speed-ui ref={setVerifySpeedRef} />;
}
// Usage
function App() {
return (
<div>
<VerifySpeed />
</div>
);
}