【问题标题】:How are React component instances different than other frameworks?React 组件实例与其他框架有何不同?
【发布时间】:2017-06-23 19:33:08
【问题描述】:

docs 中,React 表示它并不真正关心实例,因为组件将道具作为输入并为您输出元素。它在顶部为您提供了一个示例,说明其他框架必须如何创建实例,然后将其连接到 DOM 以处理不同的事件。但我不明白这与 React 所做的有什么不同。

您不会在 React 中的组件上调用 new,但您仍然必须渲染它并创建所有相同的处理程序。并且组件内部的this 仍然指代实例,因此React 不必在每次渲染组件时都创建一个实例(即使它是<li> 内的组件,一次被渲染多次)。

传统框架必须创建同一个组件的多个实例来连接到它对应的每个 DOM 节点,React 不也是这样做的吗?一个组件还能如何跟踪多个this

【问题讨论】:

    标签: reactjs components instance


    【解决方案1】:

    确实,React 创建了组件 实例 内部。您无需担心使用new

    React 元素 只是一个普通的 JavaScript 对象,它描述您想要呈现的内容(React.ComponentHTML 元素,如果type 是一个字符串)。

    来自docs

    一个元素不是一个实际的实例。相反,它是一种告诉 对您想在屏幕上看到的内容做出反应。你不能调用任何方法 在元素上。它只是一个不可变的描述对象,有两个 字段:类型:(字符串 | ReactClass)和道具:Object1。

    【讨论】:

    • 所以基本上你把所有的责任都交给了 React——创建和删除实例,也就是
    • @stackjlei 就是这样!
    【解决方案2】:

    不同之处在于开发者不必编写代码来完成所有这些工作。您只需编写渲染方法和回调,让 React 担心创建 DOM 元素和组件实例并将它们连接在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2021-02-22
      相关资源
      最近更新 更多