加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 从React元素获取HTML标记名称?

发布时间:2020-12-15 20:53:14 所属栏目:百科 来源:网络整理
导读:是否可以从React元素中获取HTML标记名称(从组件返回)?例如: function Foo() { return spanHello/span;} HTML标记名称将是span.我知道你可以查看React元素的type属性,但是在SFC和普通组件之间变得非常困难,当组件深度相当大时更难.例如: function Bar() {
是否可以从React元素中获取HTML标记名称(从组件返回)?例如:
function Foo() {
    return <span>Hello</span>;
}

HTML标记名称将是span.我知道你可以查看React元素的type属性,但是在SFC和普通组件之间变得非常困难,当组件深度相当大时更难.例如:

function Bar() {
    return <Foo />;
}

仍然应该返回跨度.

没有.

React Elements是一个虚拟构造,它们不直接表示DOM元素.有两种类型的React元素 – “常规”HTML DOM元素和React类的实例化.第一个有一个“类型”,因为它非常简单,无状态和不可变,并且只是为了渲染其相应的DOM元素而创建(但不要将它与DOM元素本身混淆!)这样的一个例子是< ; DIV>富< / DIV>在JSX或JS中的React.createElement(“div”,null,“Foo”). 但是,React类的实例化没有“类型”,因为它们不代表典型的DOM元素.当我们实例化React类时,我们将其称为“Component”,将其标识为Class的单??个实例,具有render方法,封装状态等.由于实际的DOM元素,无法检索Component的“类型”它将呈现完全依赖于其内部状态以及render方法决定返回的内容.一个例子是在某处定义的React类,然后用< Foo />实例化.或React.createElement(Foo).

了解Component实际渲染的DOM元素的唯一方法是,安装和渲染它并查看它的作用.组件本身没有固有的“类型”.你可以想象安装一个Component,使用ref来捕获呈现的DOM元素,然后使用回调函数将这些信息传递给父代.

var Child = React.createClass({
  render: function() {
    return <div ref={function(el){this.props.whatElementAmI(el)}.bind(this)} >Oh My!</div>
  }
});

var Parent = React.createClass({
  whatElementAmI: function(el) {
    console.log(el.nodeName); // "DIV"
  },render: function() {
    return <div><Child whatElementAmI={this.whatElementAmI.bind(this)} /></div>
  }
});

https://facebook.github.io/react/docs/glossary.html#react-elements

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读