Code Monkey home page Code Monkey logo

use-shared's Introduction

use shared's logo

Use-Shared Hook

Installation

To install the use-shared package in your React project, use npm or yarn:

npm install use-shared

or

yarn add use-shared

Usage

- Import SharedProvider

Begin by importing the SharedProvider component from the use-shared package:

import { SharedProvider } from "@danielkhakbaz/use-shared";

- Wrap Your App with SharedProvider

Wrap your React application's root component with the SharedProvider component. Pass an initial state object as a prop to the SharedProvider. This state object will be accessible throughout your entire application:

const state = {
  name: "Danial",
  lastName: "Khakbaz",
  profession: "Front-end Engineer",
};

ReactDOM.createRoot(document.getElementById("root")).render(
  <React.StrictMode>
    <SharedProvider state={state}>
      <App />
    </SharedProvider>
  </React.StrictMode>
);

In any component within your application, import the useShared hook from use-shared to access the shared state provided by the SharedProvider:

import { useShared } from "@danielkhakbaz/use-shared";

const App = () => {
  const { data, dispatch } = useShared();

  return (
    <div>{/* Access and modify shared state using data and dispatch */}</div>
  );
};

data: This object represents the current state from the SharedProvider.
dispatch: This function allows you to update the shared state.

- Complete Example

  • main.jsx
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import { SharedProvider } from "@danielkhakbaz/use-shared";

const state = {
  name: "Danial",
  lastName: "Khakbaz",
  profession: "Front-end Engineer",
};

ReactDOM.createRoot(document.getElementById("root")).render(
  <React.StrictMode>
    <SharedProvider state={state}>
      <App />
    </SharedProvider>
  </React.StrictMode>
);
  • App.jsx
import { useShared } from "@danielkhakbaz/use-shared";

const App = () => {
  const { data, dispatch } = useShared();

  const handleClick = () => {
    dispatch({ ...data, profession: "Software Engineer" });
  };

  return (
    <div>
      <p>Name: {data.name}</p>
      <p>Last Name: {data.lastName}</p>
      <p>Profession: {data.profession}</p>
      <button onClick={handleClick}>Change Profession</button>
    </div>
  );
};

export default App;

License

MIT


danieloo.com  ·  > Danial Khakbaz  ·  > @danielkhakbaz  · 

use-shared's People

Contributors

danielkhakbaz avatar

Watchers

 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.