2016-06-14 61 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

規則通常是直到你實際需要它不優化代碼。如果您不知道是否需要優化,那麼您可能會遇到過早優化的情況。

在這種情況下,如果它減慢你的應用程序,你應該可以這樣做。問題通常是要知道這是否會降低您的應用程序的運行速度。 您可以使用監視器工具或簡單地評論/取消註釋代碼並觸發狀態更改並查看您的應用是否保持響應而不重新選擇。

相關問題