在线演示
在React框架中,只需要一段简单的代码就可以实现keep-alive效果,这可以有效提高你的工作效率。
function App() {const [show, setShow] = useState(true);return (<div><button onClick={() => setShow(show => !show)}>Toggle</button><Offscreen visible={show}><Count /></Offscreen></div>);}function Count() {const [count, setCount] = useState(0);const collected = useStillness({mounted: (contract) => {return 'mounted';},unmounted: (contract) => {return 'unmounted';},collect: (contract) => {return {isStillness: contract.isStillness(),stillnessId: contract.getStillnessId(),};},});return (<div className="count">stillness:{collected.isStillness.toString()}<p>class count: {count}</p><buttononClick={() => {setCount((count) => count + 1);}}>Add</button></div>);}render(<StillnessProvider><App /></StillnessProvider>)
详情
这段代码最重要的是<Offscreen>以及useStillness的调用,你可以直接编辑这段代码来查看效果