npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

automount

v0.0.17

Published

A simple framework to easily mount React components on a dynamic webpage

Downloads

523

Readme

automount

Automount is a simple library to automatically render react components on a server-rendered HTML page, making the use of components on dynamic pages a breeze.

Installation

To install automount with npm, run the following command:

npm install --save automount

Usage

To use automount, you'll need to register all the components you like to mount like this:

// index.js
import {registerComponent, mountAll} from 'automount';

import ComponentName from './path/to/component';
registerComponent(ComponentName);

// Then, when page is loaded:
mountAll();

Mounting the components

To mount the components on an HTML page, use the following format

  ...
    <!-- This will mount "TodoApp" here -->
    <script type="application/json" id="todo-app" data-component="TodoApp">
      {
        "todos": [
          "Buy Milk",
          "Send birthday card",
          "..."
        ],
        "otherProps": "Go here"
      }
    </script>
  ...

Accessing mounted components

To get a reference to a mounted component you can use getMountedComponent.

  import {getMountedComponent} from 'automount';
  var mountedComponent = getMountedComponent(componentId);
  // componentId would be the id attribute of the script tag that mounted the component.

You can pass a prop to a component with a reference to another mounted component like this:

  <!-- Say this is a Notifications component with a .addNotification method... -->
  <script id="notification-widget" data-component="Notifications"></script>

  <!-- And we have a form which wants to send a notification -->
  <script type="application/json" id="contact-form" data-component="ContactForm">
    {
      "getNotifications": {
        "$component": "notification-widget"
      },
      "otherProps": "Go here"
    }
  </script>

This will give ContactForm access to the Notifications component by calling this.props.getNotifications().

Config

To update the configuration of automount, use _configure.

  import {_configure} from 'automount';
  _configure({camelCase: false});

The options are:

  • camelCase (defaults to true): This will reursively convert all prop keys to camel case.
  • unmountRemovedComponents (defaults to true): This will automatically unmount components removed from the document tree when mountAll is called. This is useful to automatically unmount components after an ajax request.
  • defaultProps (defaults to {}): Default props to pass to all components.