
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
use-react-ref
Advanced tools
Intention-Revealing Extensions to State Management in React & React Native
Intention-Revealing Extensions to State Management in React & React Native
yarn add use-react-ref
npm install use-react-ref
import { useReactState } from 'use-react-ref';
function SayHelloOnThirdClick() {
const counter = useReactState(0);
if (counter.isEqual(3))
return (
<>
<p>Hello!</p>
<button onClick={counter.reset}>Reset Counter</button>
</>
);
return (
<>
<p>{`Counter: ${counter.value}`}</p>
<button onClick={() => counter.set(x => x + 1)}>Click me</button>
</>
);
}
Thin wrapper around useRef. Creates a ReactRef
of the initialValue
passed in.
ReactRef
ReactRef
object that has the following properties
get()
: returns current value of the Ref.set(newValue)
: updates the current value of the Ref to the newValue.reset()
: resets the current value to the initialValue
passed in.isInitialValue()
: returns true
if current value is the initialValue
passed in. false
otherwise.isEqual(otherValue)
: returns true
if current value is equal to otherValue
. false
otherwise.ref
: underlying useRef
return value MutableRefObject
.You should only use .ref
if another library needs the MutableRefObject
.
Thin wrapper around useState. Creates a ReactState
of the initialValue
passed in.
ReactState
ReactState
object that has the following properties
value
: currentValue of the ReactState
.set(newValue)
: updates the state on next render to the newValue
and triggers a rerender.reset()
: resets the value on next render to the initialValue
passed in and triggers a rerender.isInitialValue()
: returns true
if value is the initialValue
passed in. false
otherwise.isEqual(otherValue)
: returns true
if value is equal to otherValue
. false
otherwise.We have included createStubReactRef
and createStubReactState
to help with unit tests around components that are
being passed these as props.
To hook it up with a tool like jest. Here is how you would wrap the simple stub provided.
import { createStubReactState } from 'use-react-ref';
export function createSpyReactState<T>(value: T, set: SetValueType<T> = jest.fn()): ReactState<T> {
return createStubReactState(value, set)
}
FAQs
Intention-Revealing Extensions to State Management in React & React Native
The npm package use-react-ref receives a total of 9 weekly downloads. As such, use-react-ref popularity was classified as not popular.
We found that use-react-ref demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.