2016-06-14 58 views
1

我使用reselectdenormalizr来避免在每次更改时反规范化,但我不确定这是否真的改善了某些事情。将denormalizr与reselect结合使用是一种好方法吗?

import { createSelector } from 'reselect' 
import { denormalize } from 'denormalizr' 
import { challenge as schema } from './challenge.schema' 

const getState = (state) => state 

export const getChallenge = createSelector(getState, ({ entities, challenge }) => { 
    return denormalize(entities.challenges[challenge.item], entities, schema) 
}) 

export const getChallenges = createSelector(getState, ({ entities, challenge }) => { 
    return challenge.items.map((id) => denormalize(entities.challenges[id], entities, schema)) 
}) 

回答

0

规则通常是直到你实际需要它不优化代码。如果您不知道是否需要优化,那么您可能会遇到过早优化的情况。

在这种情况下,如果它减慢你的应用程序,你应该可以这样做。问题通常是要知道这是否会降低您的应用程序的运行速度。 您可以使用监视器工具或简单地评论/取消注释代码并触发状态更改并查看您的应用是否保持响应而不重新选择。