哪种方法更好?

时间:2019-08-24 07:12:13

标签: reactjs redux

我正在使用React,Redux开发一个电子商务网站,该网站显示了一些产品,这些产品可以通过带有某些选项的选择框进行排序或过滤。

我有两种过滤产品的方法:

1-每次从服务器获取产品并检查获取功能,例如:

products = products.filter(p =>
    options.find(o => p.categories.find(category=> category=== o))
);

2-提取产品一次,然后创建一个缩减器,该缩减器在每次选择了不同的选项时都会过滤产品

在最佳实践和性能方面哪个更好?

更新:获取功能

const fetchProducts = (categories) => {
  fetch('products API')
    .then(res => {
      let { products } = res.data;

      if (!categories && categories.length > 0) {
        products = products.filter(p =>
          categories.find(category => p.categories.find(size => size === category))
        );
      }

      return dispatch({
        type: FETCH_PRODUCTS,
        payload: products
      });
    })
    .catch(err => {
      console.log('Could not fetch products);
    });
};

1 个答案:

答案 0 :(得分:3)

这取决于您正在构建的应用程序。如果您要处理大型数据集,则应首选服务器端过滤

原因是客户端筛选可能会导致许多问题。例如,即使服务器上的内容已更新,客户端也可能向用户显示以前缓存的数据。

此外,您可以实施节流和反跳之类的技术来提高应用程序的效率。

简而言之,如果您的数据集很小,则可以继续进行客户端过滤。但是为了安全起见,我更喜欢服务器端过滤。