对于useEffect,useCallback,useMemo的疑问
useEffect,useCallback,useMemo分别在什么情形下使用
在写一个checkbox的组件,但是不确定应该把handleChange方法放在哪??
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import './index.scss'
export default function Checkbox ({
checked,
onChange,
disabled,
type,
children
}) {
const handleChange = e => {
//
}
const classes = classNames({
'checkbox__icon': true,
'checkbox--disabled': disabled,
'checkbox--checked': checked
});
return (
<div data-checkbox-type={type}>
<p className="checkbox" onClick={handleChange}>
<i name="success" className={classes}></i>
<span className="checkbox__label">
{children}
</span>
</p>
</div>
)
}
Checkbox.defaultProps = {
checked: false,
onChange: () => {},
disabled: false,
type: ''
}
Checkbox.propTypes = {
checked: PropTypes.bool,
onChange: PropTypes.func,
disabled: PropTypes.bool,
type: PropTypes.string
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
handleChange 就是一个方法,用不到这三个。
很难几句话讲的好这三个用处。
给你推荐一篇blog。多看几遍,多看几遍,多看几遍。
react hook
useHook
附上一点个人在开发过程中的理解吧,
这三个区别还是挺明显的,
useEffect是在函数组件中实现像类组件中的生命周期那样某个阶段做某件事情(主要是
componentDidMount
,componentDidUpdate
和componentWillUnmount
),比如而useCallback和useMemo都是性能优化的手段,区别是
useCallback返回一个函数,当把它返回的这个函数作为子组件使用时,可以避免每次都去重新渲染这个子组件,
useMemo返回的的是一个值,用于避免在每次渲染时都进行高开销的计算
所以你这个可以用useCallback包裹或者都不用