React.js中所有者和父组件之间的区别是什么

时间:2015-04-16 10:15:44

标签: javascript reactjs

React 0.13带来parent-based context instead of owner-based context

因此,我无法理解所有者和父组件之间的区别。将举例说明。

2 个答案:

答案 0 :(得分:10)

var A = React.createClass({
    render() {
        return (
            <B>
                <C />
            </B>
        );
    }
});

在上面的示例中,A是B和C的所有者,因为A会创建两个组件。

但是,B是C的,因为C作为子传递给B。

更多信息可在documentation

中找到
  

区分所有者 - ownee是很重要的   关系和亲子关系。所有者 - 欠者   关系是特定于React,而父子关系   只是你知道并喜欢DOM的人。

答案 1 :(得分:1)

来自官方文件:

An owner is the component that sets the props of other components

这里有一个例子,其中A是B的所有者:

var A = React.createClass({
  render: function() {
    return <B />;
  }
});

A是B的所有者,因为B是在A render函数中创建的。

这是一个例子,其中A是B的父代:

var A = React.createClass({
  render: function() {
    return <div>{this.props.children}</div>;
  }
});

var B = React.createClass({
  render: function() {
    return <span>B</span>;
  }
});

React.render(
  <A><B /></A>,
  document.getElementById('example')
);

在这个例子中,A是B的父亲,因为A&#39; s props.children包含B.但是A没有直接知道它是B的父亲,它的子节点可以是任何组件。