DOM Renderer
    Preparing search index...

    DOM Renderer

    DOM Renderer

    A light-weight DOM Renderer supports Web components standard & TypeScript language.

    NPM Dependency CI & CD

    NPM

    Open in GitPod

    import { DOMRenderer, VNode } from 'dom-renderer';

    const newVNode = new DOMRenderer().patch(
    new VNode({
    tagName: 'body',
    node: document.body
    }),
    new VNode({
    tagName: 'body',
    children: [
    new VNode({
    tagName: 'a',
    props: { href: 'https://idea2.app/' },
    style: { color: 'red' },
    children: [new VNode({ text: 'idea2app' })]
    })
    ]
    })
    );
    console.log(newVNode);
    import { DOMRenderer, VNode } from 'dom-renderer';
    
    -const newVNode = new DOMRenderer().patch(
    +const newVNode = new DOMRenderer().patchAsync(
        new VNode({
            tagName: 'body',
            node: document.body
        }),
        new VNode({
            tagName: 'body',
            children: [
                new VNode({
                    tagName: 'a',
                    props: { href: 'https://idea2.app/' },
                    style: { color: 'red' },
                    children: [new VNode({ text: 'idea2app' })]
                })
            ]
        })
    );
    -console.log(newVNode);
    +newVNode.then(console.log);
    

    Edit DOM Renderer example

    {
    "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "dom-renderer"
    }
    }
    import { DOMRenderer } from 'dom-renderer';

    const newVNode = new DOMRenderer().render(
    <a href="https://idea2.app/" style={{ color: 'red' }}>
    idea2app
    </a>
    );
    console.log(newVNode);
    import { DOMRenderer } from 'dom-renderer';
    
    const newVNode = new DOMRenderer().render(
        
            idea2app
    -    
    +    ,
    +    document.body,
    +    'async'
    );
    -console.log(newVNode);
    +newVNode.then(console.log);
    
    import { DOMRenderer } from 'dom-renderer';

    const renderer = new DOMRenderer();

    const Hello = () => <h1>Hello, JSX SSR!</h1>;

    export const generateStream = () => renderer.renderToReadableStream(<Hello />);
    import { Readable } from 'stream';
    import { createServer } from 'http';
    import 'dom-renderer/polyfill';

    import { generateStream } from './view';

    createServer((request, response) => {
    const stream = generateStream();

    Readable.fromWeb(stream).pipe(response);
    }).listen(8080);

    Edit MobX Web components

    SnabbDOM

    Edit DOM Renderer