开发者社区 问答 正文

以下代码片段中,为什么使用useEffect是不必要的?

以下代码片段中,为什么使用useEffect是不必要的?

function Form() {  
const [firstName, setFirstName] = useState('Taylor');  
const [lastName, setLastName] = useState('Swift');  
const [fullName, setFullName] = useState('');  
useEffect(() => {  
setFullName(firstName + ' ' + lastName);  
}, [firstName, lastName]);  
// ...  
}

展开
收起
夹心789 2024-05-27 20:21:25 77 分享 版权
1 条回答
写回答
取消 提交回答
  • 因为fullName可以根据firstName和lastName在渲染期间直接计算得出。将fullName存储在状态中并通过useEffect来更新它会导致不必要的重新渲染和额外的性能开销。相反,可以直接在渲染期间计算fullName,如下所示:

    function Form() {  
    const [firstName, setFirstName] = useState('Taylor');  
    const [lastName, setLastName] = useState('Swift');  
    const fullName = firstName + ' ' + lastName;  
    // ...  
    }
    
    2024-05-27 21:59:53
    赞同 1 展开评论
问答地址: