Giter Club home page Giter Club logo

react-beam's Introduction

React Beam

Allows children to other parts of the React subtree, and updates when needed. Originally designed for use with React Router in an app which has a common element such as a header with a title, where a component in the page subtree might want to change the title.

Install

npm i @azmenak/react-beam

Api

Receiver

import { Receiver } from 'react-beam';

Props

  • link:<String>: a unique ID, used to send children to the correct component
  • onUpdate:<Function (children)> (optional): runs whenever an update is received, with children as the only argument
  • children:<ReactNode> (optional): renders child node(s) when the recevied children are null or undefined
  • style:<Object> (optional): style will be shallowly mixed in when there is 1 child node, or is applied to a new <span> root node
  • className:<String> (optional): applied to child node when there is 1 child node, or applied to new <span> root node

Transmitter

Always renders null.

import { Transmitter } from 'react-beam';

Props

  • link:<String> a unique ID, used to send children to the correct component
  • children:<ReactNode> children to render in the <Receiver /> component

Usage

// AppHeader.jsx

import React from 'react';
import { Receiver } from 'react-beam';

export class AppHeader extends React.Component {
  render() {
    return (
      <div>
        { // ...other stuff }
        <Recevier link="header" />
      </div>
    );
  }
}
// SomePage.jsx

import React from 'react';
import { Transmitter } from 'react-beam';

export class SomePage extends React.Component {
  render() {
    return (
      <div>
        { // ...page stuff }
        <Transmitter link="header">
          <span>Page dependent content</span>
          <span>More content</span>
        </Transmitter>
      </div>
    );
  }
}

react-beam's People

Contributors

azmenak avatar

Stargazers

Abhi Nayar avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.