Skip to content

bsonntag/react-signal

Repository files navigation

react-signal

CircleCI build

Send messages between components.

react-signal logo

Disclaimer

You might not want to use this.

If you need to share state between two components, then lift that state up to some common ancestor and pass the state as props. If that common ancestor is too far up in your tree, then you can use context to share that state without having to do prop drilling.

So when should you use this?

Use this when you want to send some kind of message from one component to another, without having that message rest in state somewhere.

Installation

Using npm:

npm install react-signal

Using yarn:

yarn add react-signal

Usage

import { createSignal } from 'react-signal';
import React from 'react';

const Signal = createSignal();

function Publisher() {
  const publish = Signal.usePublish();

  return <button onClick={() => publish('hello')}>Click me</button>;
}

function Subscriber() {
  Signal.useSubscription((message) => {
    console.log('Received: ', message);
  });

  return <p>Check the console</p>;
}

function App() {
  return (
    <Signal.Provider>
      <Publisher />
      <Subscriber />
    </Signal.Provider>
  );
}

Contributing

Please feel free to submit any issues or pull requests.

Acknowledgements

Thank you Francisco Morais for your huge help with the logo!

License

MIT

About

Send messages between React components.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published