gpt4 book ai didi

javascript - 将 SWR 与 Redux 一起使用是正确的还是好的做法?

转载 作者:行者123 更新时间:2023-12-04 01:09:17 27 4
gpt4 key购买 nike

我正在使用 SWR
在我的代码中,我使用两者的连接点如下

const vehiclesStates = useSelector(({ vehiclesStates: state }) => state); // REDUX
const response = useFetch("/vehicles/states") // SWR
const dispatch = useDispatch(); // REDUX

// REDUX
useEffect(() => {
if(response.data) dispatch(VehiclesStatesActions.setVehiclesStates(response.data.result))
}, [response.data, dispatch]);

if(response.error) return <div>ERROR - {response.error.toString()}</div> // SWR
else if(!response.data) return <div>LOADING</div> // SWR

// If there is a return I render my component
return (<></>)
在上面的这段摘录中,我使用我使用 SWR(与 axios 集成)返回的数据在 redux 中设置了我的组件状态。
这样,在需要使用相同数据的任何其他组件中,我只使用 redux 的 useSelect 导入它。 .
这边走
const vehiclesStates = useSelector(({ vehiclesStates: state }) => state);
我发现它比通过在每个想要使用该数据的组件上调用 useFetch 来使用 SWR 更实用。
我的问题是:使用这种方式是正确的方式,还是会影响性能或其他什么?
提前致谢

最佳答案

我认为这有点多余,您最好使用其中一种,SWR 旨在将缓存用作本地状态,因为该状态存在于服务器上,它更加完善,并且使您无需冗长地管理状态中的每个操作,就像您在调度操作时必须与 redux 显式调用 API 调用一样。
使用这两种方式都无法达到 SWR 的目的,那么你最好只使用 Redux。一个好的规则是使用 SWR 管理服务器中的状态,使用 Redux 管理本地状态。
我可以看到两者并存的一些场景,当你有一个非常复杂的数据操作,并且你必须经常修改和删除信息时,我认为这种情况将使用 redux 和 SWR 的 mutate 功能的混合。

关于javascript - 将 SWR 与 Redux 一起使用是正确的还是好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65364352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com