共计 839 个字符,预计需要花费 3 分钟才能阅读完成。
一:废话不多说,间接开讲:
这里有三个组件,我想让 B 组件内展现 C 组件,也就是说我想让 B 组件成为 C 组件的父亲。(这不是废话吗)我这样写不就完事了吗?
然而理论工作当中,咱们常常会临时不太确定 B,C 组件的关系,等到最初的时候再决定,这时候咱们假如 B 组件最初必定是 C 组件的父组件。
其实 React 中还有第二种让 C 组件成为 B 组件子元素的办法。
你如果之前学过提前学过一些知识点话,你对这个必定不生疏,也就是 B 标签的标签体内容是 C 标签。
然而如果你单纯这样写的话,很遗憾,页面上是不会显示 C 标签的
你可能会奇怪,不应该啊,这咋回事啊。
留神重点来了: 这时候你把 B 的爸爸疏忽了吧?A 标签说:你小子在我屁股底下蹦跶不论我了是吧?这时候你其实是在 A 标签传递给 B 标签的 props 的 children 属性中写内容,你爸爸给你货色,你不收也没方法展现啊,对吧?
ok,页面当初失常显示了
二:renderprops
当初展现是展现了,然而,客户需要忽然变了,想让你的 B 标签想给 C 标签一个属性,叫做 name,值为 "方"
让它在 C 标签中展现,这咋办呢?
你可能会想,这不就是简简单单的父亲向儿子传递数据吗?props 不就完事了吗?你于是乐不可支的关上代码,而后找到 B 标签
奇怪,我的 C 标签呢?哦,对 在 A 标签里,我得这样写!
当你刚刚敲下 name 的时候就发现了,state 是 B 标签的,A 标签压根就没有!!
这怎么办呢?
没方法,你只能批改你的代码为这样,给 B 一个属性,属性值为函数,并且返回值为 C 标签。
而后咋办?在 B 标签里调呗!
调用的时候,把 name 值放进参数里,而后在返回的 C 标签内间接应用,如下图:
最初一步别忘了,你 C 标签还没接管呢!
页面成果,胜利显示~
非得叫 render 吗?不须要,你能够轻易起名字,只不过是程序员之间的一种约定,当你写 render 的时候,他人看你的代码会马上晓得你行代码的意思。就好比 for 循环里写 i =0,那样相互约定俗称的规矩。
补充一下拓展常识
B 组件里加文字,也相当于 props,须要你在 B 组件外部接管才能够应用!