Reactjs 什么导致重新渲染?如何避免呢
我在React、Redux和Hooks的实现中遇到了一些问题 我不知道如何避免这种情况:Reactjs 什么导致重新渲染?如何避免呢,reactjs,redux,react-redux,react-hooks,Reactjs,Redux,React Redux,React Hooks,我在React、Redux和Hooks的实现中遇到了一些问题 我不知道如何避免这种情况: import React, { useEffect } from "react"; import { useSelector, useDispatch } from "react-redux"; import * as R from "ramda"; function Main() { const mainBanners = useSelector(state => state.mainBann
import React, { useEffect } from "react";
import { useSelector, useDispatch } from "react-redux";
import * as R from "ramda";
function Main() {
const mainBanners = useSelector(state => state.mainBanners);
const features = useSelector(state => state.features);
const banners = useSelector(state => state.banners);
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchMainBanners());
dispatch(fetchFeatures());
dispatch(fetchBanner());
}, [dispatch]);
console.log(features);
return (
<div className="Main">
{R.isEmpty(mainBanners || features) ? (
<p>Loading...</p>
) : (
<MainBanner mainBanners={mainBanners} features={features} />
)}
<Banners banners={banners} />
</div>
);
}
export default Main;
import React,{useffect}来自“React”;
从“react-redux”导入{useSelector,useDispatch};
从“拉姆达”以R的形式导入*;
函数Main(){
const mainbaners=useSelector(state=>state.mainbaners);
const features=useSelector(state=>state.features);
const banners=useSelector(state=>state.banners);
const dispatch=usedpatch();
useffect(()=>{
分派(fetchmainbaners());
分派(fetchFeatures());
调度(fetchBanner());
},[发送];
console.log(特性);
返回(
{R.isEmpty(主横幅| |特征)(
加载
) : (
)}
);
}
导出默认主;
此示例的结果console.log
如下所示:
您有三个不同的
useSelector
调用,您正在为三组不同的数据执行回迁。因此,是的,我预计这将导致总共四个单独的渲染:
mainbaners
后渲染特征
后渲染横幅
后渲染这是基于您编写的代码的预期结果,一般来说也可以,因为当这些更改中的任何一个更改时,您的组件可能希望呈现不同的内容。您有三个不同的
useSelector
调用,并且您正在为三组不同的数据执行回迁。因此,是的,我预计这将导致总共四个单独的渲染:
mainbaners
后渲染特征
后渲染横幅
后渲染这是基于您编写的代码的预期结果,一般来说也可以,因为当这些更改发生时,您的组件可能希望呈现不同的内容。您试图避免什么?为什么重播对你不好?你想避免什么?为什么重播对你不好?