Git Product home page Git Product logo

react-savestate's Introduction

REACT-SAVESTATE

Description: react-savestate is a lightweight npm package designed as a router for React applications which preserves states between route changes. It provides alternative routing functionalities and components to streamline navigation within React-based web applications.

Installation: You can install react-savestate via npm by running the following command:

 npm install react-savestate

Usage:

// import the functions
import { Route, getState, Link } from 'react-savestate';
// Define routes using the Route component
<Route path='/' component={LandingPage} />
<Route path='/Contact' component={Contact} />
// Use the Link component for navigation without page refresh
<Link href='/' state={{ data: "from HomePage", data2: "something else" }}>Go to contact</Link>
// Retrieve saved state using getState function
console.log(getState());

Components:

  • Route: An alternative route element for routing between pages in a React application. No need to wrap them in any parent wrapper.
  • Link: A replacement for <a> tag which facilitates navigation without triggering a page refresh. It also supports passing a state object to preserve data across routes without using URL parameters.
  • getState: Function to retrieve the saved state, if any, within the application.

Note:

  • Ensure that the state passed to Link is serializable to avoid any issues with preservation and retrieval.
  • Utilize Route and Link components as replacements for traditional routing and navigation elements within your React application for improved performance and user experience.

Contributing: Contributions to react-savestate are welcome! Feel free to submit issues or pull requests on the GitHub repository: react-savestate GitHub Repository

License: This project is licensed under the MIT License - see the LICENSE file for details.

react-savestate's People

Contributors

ilikepizza2 avatar

Stargazers

 avatar Akshat Jaiswal avatar

Watchers

 avatar

react-savestate's Issues

Use localstorage/sessionstorage for storing the state.

By default, some browsers use some pre-allocated disk space to store state saved in history api. If we want more space, we need to use other storage options like localstorage/sessionstorage.

Tasks

  • Serialize state manually.
  • Store the serialized state in localstorage/sessionstorage
  • On another route change, fetch the saved state from the storage.

Handle a few edge cases in the appliction.

There might be a lot of edge cases to be handled. Currently, we handle -

  • Clicking a link to redirect to another page.
  • Pressing back button to go back.

You can help by

  • Finding new edge cases which we don't handle currently.
  • Solve those edge cases by contributing.

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.