Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.
I've developed fantastic libraries leveraging React18 features using Zustand, and they performed admirably. However, when attempting to import from specific folders for better tree-shaking, the libraries encountered issues. Each import resulted in a separate Zustand store being created, leading to increased package size.
As a solution, I set out to create a lightweight, bare minimum store that facilitates shared state even when importing components from separate files, optimizing tree-shaking.
✅ Full TypeScript Support
✅ Unleash the full power of React18 Server components
✅ Compatible with all build systems/tools/frameworks for React18
✅ Documented with Typedoc (Docs)
✅ Examples for Next.js, Vite, and Remix
Utilize this hook similarly to the useState
hook. However, ensure to pass a unique key, unique across the app, to identify and make this state accessible to all client components.
const [state, setState] = useRGS<number>("counter", 1);
or
const [state, setState] = useRGS<number>("counter", () => 1);
For detailed instructions, see Getting Started
Enhance the functionality of the store by leveraging either the create
function, withPlugins
function, or the useRGSWithPlugins
hook from r18gs/dist/with-plugins
, enabling features such as storing to local storage, among others.
// store.ts
import { create } from "r18gs/dist/with-plugins";
import { persist } from "r18gs/dist/plugins"; /** You can create your own plugin or import third-party plugins */
export const useMyPersistentCounterStore = create<number>("persistent-counter", 0, [persist()]);
Now, you can utilize useMyPersistentCounterStore
similarly to useState
without specifying an initial value.
const [persistedCount, setPersistedCount] = useMyPersistentCounterStore();
For detailed instructions, see Leveraging Plugins
See contributing.md
Interested in hands-on courses for getting started with Turborepo? Check out React and Next.js with TypeScript and The Game of Chess with Next.js, React and TypeScript
This library is licensed under the MPL-2.0 open-source license.
Please consider enrolling in our courses or sponsoring our work.
with 💖 by Mayank Kumar Chaudhari
FAQs
A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.
The npm package r18gs receives a total of 3,752 weekly downloads. As such, r18gs popularity was classified as popular.
We found that r18gs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.