What is the definition of parent component
React is a tool to detect changes and perform manipulations in the DOM, which in turn is basically a tree. React components and JSX are syntatic sugar to call DOM's APIs.
eg
ReactDOM.render(
React.createElement('div', null, 'Hello World'),
document.getElementById('root')
);
Is just as valid as passing a Component as the first argument.
- A component represents an actual element of the DOM
- A DOM's element can be understood as a node in a tree
So a parent component/node can be defined as:
the node which is a predecessor of any node is called as PARENT NODE. In simple words, the node which has a branch from it to any other node is called a parent node. Parent node can also be defined as "The node which has child / children".
Is A parent of C
No. A is a parent node by definition but not C's parent. For all purposes A is grandparent of C cause it is it's predecessor but not it's PARENT (directly predecessor).
A is parent of B which is parent of C.
If you would access C in the DOM the following is a valid statement:
A.parentNode.parentNode
Is B a parent of C
Yes!
B gets the element of C via children prop. If C is the child of B, then B supposed to be the parent of C. But that should actually be a containment as mentioned in here.
That's exactly it. Everything passed inside a components instantiation is mapped to a special prop name children. A containment is just a fancy way of saying that a component can receive arbitrary children from it's parents and still be able to access it.
const Parent = () => <Child> Arbitrary value or node </Child>;
const Child = ({ children }) => <p> {children} </p>;
children represents everything that was passed inside the component's tag.