reactjs - React 组件中的 const 或 let

标签 reactjs ecmascript-6

假设我有一个 React 组件(无论是否愚蠢),我想从商店中获取一些东西并将其放入变量中以使我的代码更简洁。我应该使用 const 还是 let?显然状态将会改变。

这是我正在谈论的一个例子。我想再次强调,当用户与我的应用程序交互时,myValues 将会发生变化。

class MyComponent extends Component {

    render() {

        // Here, should I use const or let?
        const myValues = this.props.someData;

        return(
            <div>

            {myValues.map(item => (
                    <SomeOtherComponent key={item.id} data={item} />
                ))}

            </div>
        );
    };
}

function mapStateToProps(state) {
    return {
        someData: state.someValuesComingFromApi
    }
}

export default connect(mapStateToProps)(MyComponent)

最佳答案

const变量不会被重新分配的信号。

let变量可能被重新分配

的信号

需要思考的其他事情:

  • 默认使用const
  • 仅在需要重新绑定(bind)时才使用 let
  • const 并不表示某个值是“常量”或不可变的。

    const foo = {};
    foo.bar = 10;
    console.log(foo.bar); // --> 10
    

    只有绑定(bind)是不可变的。即在 const 变量上使用赋值运算符或一元或后缀 -- 或++ 运算符会引发 TypeError 异常

  • ES6 constlethoisted也。尽管标识符在编译时具有相同的内存引用,但在代码中声明之前无法访问它们。 (但不像我们想象的那样,声明会被物理移动到范围的顶部);)

关于reactjs - React 组件中的 const 或 let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825010/

相关文章:

mysql - 如何在 Node.js 中使用 Sequelize for MySql 编写 mongoose 的对象 id 引用

javascript - 构建器模式不向对象添加值

javascript - 理解 ES6 中的循环依赖

reactjs - 如何对在 ReactJS/Redux 应用程序中调度操作的组件进行单元测试?

reactjs - React 延迟加载的组件丢失其状态(卸载)

javascript - 为什么命名导入会导致构建速度变慢和输出变大?

javascript - 你能改变 ES6 类定义来附加新的实例方法吗?

javascript - Node.js - 语法错误 : Unexpected token import

reactjs - RTL 中的 waitForElementToBeRemoved 错误超时

reactjs - 如何在 Next 13 应用程序文件夹的根布局中使用上下文?