Reactjs 在“action.type”中使用“Symbol”是否可以提高性能?

Reactjs 在“action.type”中使用“Symbol”是否可以提高性能?,reactjs,ecmascript-6,redux,Reactjs,Ecmascript 6,Redux,当我在写Reactjs的时候读了之后。我有个问题。假设我想将常量.jsx从普通字符串更改为Symbol() 问题: 当我定义action类型时,将string替换为Symbol()对我有什么好处吗 如果我确实获得了性能优势。它提高了多少百分比 下面是示例示例 constants.jsx export const INCREMENT = 'increment'; export const DECREMENT = 'decrement'; export const ADD_COUNTER = 'a

当我在写Reactjs的时候读了之后。我有个问题。假设我想将
常量.jsx
从普通字符串更改为
Symbol()

问题:
当我定义
action
类型时,将
string
替换为
Symbol()
对我有什么好处吗

如果我确实获得了性能优势。它提高了多少百分比


下面是示例示例

constants.jsx

export const INCREMENT = 'increment';
export const DECREMENT = 'decrement';
export const ADD_COUNTER = 'add_counter';
export const REMOVE_COUNTER = 'remove_counter';
reducers.jsx

export const counterReducer = (state = 0, action) => {
    switch (action.type) {
        case INCREMENT:
            return state + 1;
        case DECREMENT:
            return state - 1;
        default:
            return state;
    }
};

由于字符串在JS中非常快速和高效,因此预计单独使用符号比使用字符串成本更高

通常,符号包含说明是因为它很有用,而创建
symbol('increment')
symbol不能比
'increment'
string更有效,因为符号同时包含符号和字符串

通常,在创建它们之后,性能应该没有差异,但这取决于引擎。无论如何,这两种方法都是非常快的,这种担心被认为是过早的优化,除非另有证明,否则应该放弃

另一方面,应优先考虑实际考虑。符号可能会有帮助,因为通量/重排操作可能会受到冲突的影响,字符串值最好是唯一的;这可以通过像
INCREMENT='foo INCREMENT'
这样的名称空间来解决

由于中解释的原因,符号不能有效地用作动作。如果不进行特殊处理,它们就无法(反)序列化——即使这样也无法保证,因为符号的唯一性应该依赖于描述,而描述仍然是字符串。这可能会影响不支持符号作为操作的任何第三方工具或库,例如