先来复习一下react 常用的Hook
1
| useCallback(fn,deps)相当于useMemo(()=> fn,deps)
|
1、 useMemo
和useCallback
接收的参数都是一样,都是在其依赖项发生变化后才执行,都是返回缓存的值,区别在于useMemo
返回的是函数运行的结果,useCallback
返回的是函数。
2、 useCallback应该和React.memo配套使用,缺了一个都可能导致性能不升反而下降。
3、记下遇到的bug ,此处存在疑惑,因为我将两个调换顺序后报错了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let filterProductByBrands = useCallback((() => { return originalProducts.filter( (product) => product.brand.brandName.indexOf(selectedBrand) >= 0 ) })(),[originalProducts, selectedBrand]) 相当于 let filterProductByBrands = useMemo(() => { return originalProducts.filter( (product) => product.brand.brandName.indexOf(selectedBrand) >= 0 ) },[originalProducts, selectedBrand])
|