| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This library helps turning custom elements (web components) into React components.
With NPM:
npm i reactify-custom-elementsWith Yarn:
yarn add reactify-custom-elementsSince you're reading this, you may have realized that React and custom elements (aka web components) aren't playing along very well. React handles every available native elements respectively and has therefor no knowledge whatsoever how a custom element is implemented and what properties, attributes and events it has.
What this library does is creating a middleman between those ends to make use of custom elements in React a little bit (actually a lot) easier. It can be done in two ways:
import * as React from "react";
import { createComponent } from "reactify-custom-elements";
import { CustomButtonElement } from "./customButtonElement";
interface CustomButtonProps {
onPress?: () => void;
}
window.customElements.define("custom-button", CustomButtonElement);
const CustomButton = createComponent("custom-button", {
forwardRef: true, // false
});
function App() {
return (
<CustomButton onPress={() => alert("TADA!")}>
Hit me
</CustomButton>
);
}function createComponent<
E extends HTMLElement = HTMLElement,
P extends {} = {}
>(
elementName: string,
options?: CreateComponentOptions
) : React.ForwardRefExoticComponent | (props: P) => React.Element| Property | Type | Default Value | Description |
|---|---|---|---|
| forwardRef | boolean | false | Forward the element instance ref. This is false by default in case the ref is never going to be used. |
| mapPropName | function(propName: string) : string | undefined | Use this if you need to rename a React property to match the custom element's property, attribute or event. |
function useCustomElement<
E extends HTMLElement = HTMLElement,
P extends {} = {}
>(
elementName: string,
elementProps?: P,
options?: UseCustomElementOptions
) : [
element: React.ReactElement,
ref: React.MutableRefObject<HTMLElement | null>
]| Property | Type | Default Value | Description |
|---|---|---|---|
| mapPropName | function(propName: string) : string | undefined | Use this if you need to rename a React property to match the custom element's property, attribute or event. |
| Back | FazBrowse Home | New Git URL |