了解反应中元素和组件有哪些区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
反应中元素和组件的区别:1元素数据结构是普通对象,而组件数据结构是类或纯函数;2、在JSX中,被元素嵌套的元素会以属性儿童的方式传入该元素的组件。
引用><强>反应中元素和组件的区别:强>
<强> 1,反应元素强>
元反应素(元素)的反应,它是反应中最小基本单位,我们可以使用JSX语法轻松地创建一个反应元素:
=& lt;常量元素div className=癳lement"在我# 39;m element
元反应素不是真实的DOM元素,它仅仅是js的普通对象(普通对象),所以也没办法直接调用DOM原生的API。上面的JSX转译后的对象大概是这样的:
{ _context:对象, _owner:空, 关键:空, 道具:{ 名称:& # 39;元素# 39; 孩子们:& # 39;我# 39;m元素# 39; }, 裁判:空, 类型:“div" }
只有在这个元素渲染被完成后,才能通过选择器的方式获取它对应的DOM元素,不过,按照反应有限状态机的设计思想,应该使用状态和属性来表述组件,要尽量避免DOM操作,即便要进行DOM操作,也应该使用反应提供的接口ref和<代码> getDOMNode()> 代码。一般使用反应提供的接口就足以应付需要DOM操作的场景了,因此像jQuery强大的选择器在反应中几乎没有用武之地了。
除了使用JSX语法,我们还可以使用<代码> React.createElement() 代码>和<代码> React.cloneElement() 代码>来构建元反应素。
<强> React.createElement() 强>
JSX语法就是用<代码> React.createElement() 代码>来构建元反应素的。它接受三个参数,第一个参数可以是一个标签名。如div,跨度,或者反应组件。第二个参数为传入的属性。第三个以及之后的参数,皆作为组件的子组件。
React.createElement ( 类型, (道具) (孩子……) )
<>强React.cloneElement() 强>
React.cloneElement()与React.createElement()相似,不同的是它传入的第一个参数是一个反应元素,而不是标签名或组件。新添加的属性会并入原有的属性,传入到返回的新元素中,而就的子元素奖杯替换。
React.cloneElement ( 元素, (道具) (孩子……) )
<强> 2,反应组件强>
反应中有三种构建组件的方式.React.createClass (), ES6类和无状态函数。
React.createClass ()
React.createClass()是三种方式中最早,兼容性最好的方法。在0.14版本前官方指定的组件写法。
var问候=React.createClass ({ 呈现:函数(){ 返回& lt; h2>你好,{this.props.name} & lt;/h2>; } });
<强> ES6类强>
ES6类是目前官方推荐的使用方式,它使用了ES6标准语法来构建,但它的实现仍是调用<代码> React.createClass() 代码>来实现了,ES6类的生命周期和自动绑定方式与React.createClass()略有不同。
类问候extemds React.Component { 呈现:函数(){ 返回& lt; h2>你好,{this.props.name} & lt;/h2>; } };
<强>无状态函数强>
无状态函数是使用函数构建的无状态组件,无状态组件传入的道具和背景两个参数,它没有状态,除了渲染(),没有其它生命周期方法。
函数问候(道具){ 返回& lt; h2>你好,{props.name} & lt;/h2>; }
React.createClass()和ES6类构建的组件的数据结构是类,无状态组件数据结构是函数,它们在反应被视为是一样的。
<强> 3元素与组件的区别强>
组件是由元素构成的。元素数据结构是普通对象,而组件数据结构是类或纯函数。除此之外,还有几点区别要注意:
<强> this.props。孩子强>
在JSX中,被元素嵌套的元素会以属性儿童的方式传入该元素的组件。当仅嵌套一个元素时,孩子是一个反应元素,当嵌套多个元素时,孩子是一个元反应素的数组。可以直接把孩子写入JSX的中,但如果要给它们传入新属性,就要用到<代码> React.cloneElement() 代码>来构建新的元素。我曾放过以下错误:
渲染(){ var=this.props.children孩子 返回& lt; div> & lt;孩子提示={& # 39;错误! & # 39;}/祝辞& lt; div> }反应中元素和组件有哪些区别