Package Exports
- transition-hook
- transition-hook/dist/cjs/index.js
- transition-hook/dist/esm/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (transition-hook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
โ๏ธ transition-hook
An extreme light-weight(0.4kb) react transition animation hook which is simpler and easier to use than react-transition-group
See Example |
See Example in Codesandbox
Installation
Install with yarn
yarn add transition-hookOr install with npm
npm install transition-hook --saveUsage
useTransition
This hook transform a boolean state into transition stage('from' | 'enter' | 'leave'), and unmount the component after timeout.
const [onOff, setOnOff] = useState(true)
const {stage, shouldMount} = useTransition(onOff, 300) // (state, timeout)
return <div>
<button onClick={()=>setOnOff(!onOff)}>toggle</button>
{shouldMount && (
<p style={{
transition: '.3s',
opacity: stage === 'enter' ? 1 : 0
}}>
Hey guys, I'm fading
</p>
)}
</div>Transition
If you prefer FaCC pattern usage, there it is!
const [onOff, setOnOff] = useState(true)
return <div>
<button onClick={()=>setOnOff(!onOff)}>toggle</button>
<Transition state={onOff} timeout={300}>
{(stage, shouldMount)=>shouldMount &&(
<p style={{
transition: '.3s',
opacity: stage === 'enter' ? 1 : 0
}}>
Hey guys, I'm fading
</p>
)}
</Transition>
</div>API Reference
useTransition(state, timeout)
const {stage, shouldMount} = useTransition(onOff, 300)| Parameters | Type | Description |
|---|---|---|
state |
boolean |
Required. Your boolean state, which controls animation in and out |
timeout |
number |
Required. How long before the animation ends and unmounts |
| Returns | Type | Description |
|---|---|---|
stage |
Stage: from | enter | leave |
Use three different stage to perform your animation |
shouldMount |
boolean |
Whether the component should be mounted |
Transition
<Transition state={onOff} timeout={300}>
{(stage, shouldMount) => shouldMount && <div style={...}>hello</div>}
</Transition>| Props | Type | Description |
|---|---|---|
state |
boolean |
Required. Your boolean state, which controls animation in and out |
timeout |
number |
Required. How long before the animation ends and unmounts |
children |
(stage: Stage, shouldMount: boolean)=>React.ReactNode |
Required. FaCC pattern. |