老师看一下关于递归的问题

老师看一下关于递归的问题

http://img1.sycdn.imooc.com//climg/5f64c3740999a85214320707.jpg

我的理解:第一个 

  <div v-if="item.children"

代表的就是http://img1.sycdn.imooc.com//climg/5f64c3a309bfdee205190312.jpg

 <detai-list :list="item.children"></detai-list

这句话的意思是说吧 红框数据绑定到 detai-list上 也就是这时候可以看做 拿过来的数据就是

children:[{

                          title:'成人三观连票',

                          children:[{

                              title:'成人游乐园'

                          }]

如果http://img1.sycdn.imooc.com//climg/5f64c40709ca6c6305990203.jpg

我这样写 我只想要内个成人三观连票,但是页面却什么也不显示,我去掉后面的.title却把最里层的成人游乐园带出来了 但是 我并没有 向最开始v-for那样 绑定 item.title这样写法 指定那一个  但是缺显示了 这是为什么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕久久 2020-09-19 17:23:16

同学你好,问题解答如下:

list.vue这个页面,就是组件detail-list,组件detail-list中渲染了标题{{item.title}};而在组件detail-list中,在class="item-chilren"这个div中,又生成了一个detail-list组件,所以这个detail-list中,也有标题{{item.title}}(自己嵌套自己);可以将组件detail-list看成一个房子,该房子进门的位置有张床(床就是类比标题),在这个房子的某一个位置,我们又建了一个房子,该房子和外层的大房子一模一样,所以该房子里,同样的位置,也有一个床。

建议同学再看一下老师之前的回复,结合本次回复,仔细理解一下,不要着急。

祝学习愉快!

好帮手慕久久 2020-09-19 11:24:02

同学你好,问题解答如下:

  1. 关于数据绑定部分,同学的理解是对的。

  2. 由于这里是使用的递归组件,即组件内部再调用组件自己:list.vue这个页面,是组件detail-list,而该页面内,又调用了自己,如下:

    http://img1.sycdn.imooc.com//climg/5f65774a0965c74e09310803.jpg

    所以给“detail-list”绑定:list="item.children.title"时什么也不显示,因为组件detail-list本身的数据要求是一个数组,如下:

    http://img1.sycdn.imooc.com//climg/5f6577e80958344e08720770.jpg

    因此数据提供的不正确,页面显示就不会正确。

    而绑定:list="item.children"时,会将内部的title也显示出来,也是因为“<detail-list :list="item.children"></detail-list>”这句代码,是再渲染一个detail-list 组件,而detail-list 组件内部有对标题的渲染,如下:

    http://img1.sycdn.imooc.com//climg/5f6579a109f6755708480509.jpg

同学试着理解一下。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • 提问者 小杨同学呀 #1
    “<detail-list :list="item.children"></detail-list>”这句代码,是再渲染一个detail-list 组件,我在div里面已经重新定义了一个detail-list标签 为啥上班的渲染出来的{{item.titel}} 会出现在下面的 detail-list标签内容中
    2020-09-19 14:23:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师