React中,在useEffect()内部创建一个函数与从另一个文件中导入它的区别?
P粉948258958
P粉948258958 2024-02-04 09:26:53
[JavaScript讨论组]

在工作中,我偶然发现了这样的代码

function Component({ data }) {
    const [number, setNumber] = useState(0);
    const [speed, setSpeed] = useState(0);
    const [angle, setAngle] = useState(0);
    useEffect(() => {
        const updateValues = (newValue, check, setter) => {
            if (check) {        
                setter(newValue):
            } else {
                setter(null):       
            }
        };
        updateValues(10, true, setNumber);
        updateValues(20, false, setSpeed);
        updateValues(30, true, setAngle);
    }, [data]);

    // ...
}

在这里,我们可以看到 useEffect() 中有一个名为 updateValues() 的函数,它可以执行多个状态更新。我被告知要将此函数导出到另一个文件中以解决性能问题。

// file1.js
export const updateValues = (newValue, check, setter) => {
            if (check) {        
                setter(newValue):
            } else {
                setter(null):       
            }
        };

// Component.js

import { updateValues } from "file1.js";

function Component({ data }) {
    const [number, setNumber] = useState(0);
    const [speed, setSpeed] = useState(0);
    const [angle, setAngle] = useState(0);
    useEffect(() => {
        updateValues(10, true, setNumber);
        updateValues(20, false, setSpeed);
        updateValues(30, true, setAngle);
    }, [data]);

    // ...
}

我一直想知道这样的事情在 React 中是否真的存在问题? React 官方文档在 useEffect() 中提供了多个函数示例,但几乎没有提及垃圾收集。我想知道垃圾收集是否会在适当的时间正确销毁导入的函数。

我的假设是,导入一个函数或其他任何东西都会在内存中创建一些东西,即使我们不需要它,它仍然存在。

我不确定这个问题是否是一个“基于意见”的问题,因为我只是在寻找有关内存和垃圾收集在 useEffect() 内部如何工作的解释。

P粉948258958
P粉948258958

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号