加载动画在React中怎么实现才不会卡顿?
我在用React做数据请求时加了个加载动画,但每次一加载页面就明显卡一下,尤其是低端手机上更严重。我试过用CSS动画和直接切换loading状态,但效果都不太流畅,是不是我的写法有问题?
这是我现在用的代码:
const [loading, setLoading] = useState(false);
useEffect(() => {
setLoading(true);
fetchData().finally(() => setLoading(false));
}, []);
return (
{loading && <div className="spinner">加载中...</div>}
{!loading && <DataList />}
);
或者更简单点,用 CSS 的
will-change: opacity优化一下渲染性能,动画尽量用 transform 和 opacity,别用 top/left/width/height 这类会触发重排的属性。