在学习ReactJS时,我多次听到“ mount”一词。与此术语相比,似乎存在生命周期方法和错误。通过安装,React到底是什么意思?
例子: componentDidMount() and componentWillMount()
React的主要工作是弄清楚如何修改DOM以匹配要在屏幕上呈现的组件。
React通过“装载”(将节点添加到DOM),“卸载”(将它们从DOM中删除)和“更新”(对DOM中已经存在的节点进行更改)来做到这一点。
React节点如何表示为DOM节点以及它在DOM树中的出现位置和时间,由顶级API管理。为了更好地了解正在发生的事情,请看一下最简单的示例:
// JSX version: let foo = <FooComponent />;
let foo = React.createElement(FooComponent);
那是foo
什么,你能用它做什么?foo
目前是一个普通的JavaScript对象,大致类似于以下形式(简化):
{
type: FooComponent,
props: {}
}
它当前不在页面上的任何地方,即它不是DOM元素,也不在DOM树中的任何地方,并且除了是React元素节点外,在文档中没有其他有意义的表示形式。
它只是告诉React 如果 呈现此React元素,则屏幕上 需要 显示什么。 __它尚未“安装”。
您可以通过调用告诉React将其“装入”到DOM容器中:
ReactDOM.render(foo, domContainer);
这告诉React现在该显示foo
在页面上了。React将创建FooComponent
该类的实例并调用其render
方法。假设它渲染一个<div />
,在这种情况下,React将为其创建一个div
DOM节点,并将其插入DOM容器中。
创建实例和与React组件相对应的DOM节点并将其插入DOM的过程称为安装。
请注意,通常您只会调用ReactDOM.render()
挂载根组件。您无需手动“挂载”子组件。每当父组件调用setState()
,并且其render
方法说应首次渲染特定的子代时,React会自动将该子代“装载”到其父代中。
问题内容: 的意义是什么 我正在尝试那样使用它 问题答案: 它被称为传播属性,其目的是使道具的传递更加容易。 让我们假设您有一个接受N个属性的组件。如果数量增加,将这些信息传递下去可能是乏味且笨拙的。 因此,您可以这样做,将它们包装在一个对象中并使用扩展符号 它将把它解压缩到组件上的props中,即,仅当将props传递给另一个组件时,才“永远” 在函数内部使用。照常使用打开包装的道具。
问题内容: 我想了解如果我在动态添加的组件中不使用键会发生什么。我删除了键,它的渲染没有任何问题,只是给出了有关键使用的警告消息。有人可以举个例子,说明如果不使用密钥会带来什么后果? 问题答案: 按键可帮助React识别哪些项目已更改,添加或删除。应该为数组内的元素提供键,以赋予元素稳定的标识: 例: TL; DR在渲染动态子级时使用唯一键和常量键,或者期望发生奇怪的事情。 在我使用React.j
问题内容: 以下面的示例代码为例。 该datatimepicker是第三方库,可以在自己的代码中使用,但如果我添加一段代码在JS,萤火虫会告诉我, 要求 不能被发现。如果我应该翻译一段代码或执行某些操作?非常感谢 问题答案: 该函数旨在将单独的代码段(“模块”)添加到当前范围,该功能直到ES2015规范才成为JavaScript / ECMAScript语言的一部分。 因此,此函数 并非 特定于R
问题内容: 我到处都是关于React动态路由的信息。但是我找不到任何可以解释其工作原理以及与静态路由在各个方面都有何不同的东西。 当我们想使用React-Route在同一页面中渲染某些东西时,我非常了解事情的发展。 我的问题是,当要渲染整个新页面时,它如何工作?因为在这种情况下,必须重新呈现该页面内的所有DOM。因此,这将是静态路由吗?还是在某些方面还是动态的? 我希望我已经清楚了。感谢您预先提供
在这段代码中是什么意思?
我刚刚发现,在react函数都是异步的,或者在调用它的函数完成后调用。 现在这两样东西很难消化 在博客中,函数是在函数内部调用的,但是触发函数的原因并不是被调用函数所知道的。 他们为什么要让异步,因为JS是单线程语言,而且这个setState不是WebAPI或服务器调用,所以只能在JS的线程上完成。他们这样做是为了使重新呈现不会停止所有事件侦听器和其他东西,还是有其他设计问题。