Understanding Nested Components

So, let's define the scenario based on above image.
We have component 1 to 5, each instanciating a previous component. (except 1)
As the final tree structire is:
- 1 master
- text
- 2 master
- 1 instance instnace of 1
- text
- 3 master
- 2 instance instance of 2
- 1 instance instance of 1
- text
- 4 master
- 3 instance instance of 3
- 2 instance instance of 2
- 1 instance instance of 1
- text
- 5 master
- 4 instance of 4
- 3 instance instance of 3
- 2 instance instance of 2
- 1 instance instance of 1
- text
If you had only 1, we'de define the component as:
function _1() {
return <p>1</p>;
}
if with instanciation, with override text:
function _1({ text = "1" }: { text: string }) {
return <p>{text}</p>;
}
If we had only 1 & 2 master components and 1' & 2' instanciation
We'de define 1 & 2 as below
function _1({ text = "1" }: { text: string }) {
return <p>{text}</p>;
}
function _2() {
return <_1 text="2" />;
}
The problem starts from 3rd. you might be thinking there's no big deal about this, but for computer iterating through the tree, it gets a bit tricky.
Since the 3 is instanciating 2, but actually having the value overriden for 1 (which is instanciation of 2).
function _1({ text = "1" }: { text: string }) {
return <p>1</p>;
}
function _2() {
return <_1 text="2" />;
}
But what if case like this?

If master 1 ~ 4 and 5 as a instance of 4
function _1() {
return <p>1</p>;
}
function _2() {
return <_1 />;
}
function _3() {
return <_2 />;
}
function _4() {
return <_3 />;
}
const _5 = <_4 />;
If all 1 ~ 5 as a master
function _1({ text = "1" }: { text: string }) {
return <p>{text}</p>;
}
function _2({ text = "2" }: { text: string }) {
return <_1 text={text} />;
}
function _3({ text = "3" }: { text: string }) {
return <_2 text={text} />;
}
function _4({ text = "4" }: { text: string }) {
return <_3 text={text} />;
}
function _5({ text = "1" }: { text: string }) {
return <_4 text="5" />;
}
And this will impact all the masters starting from 4 to the starting 1.