>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 8426 个阅读者 刷新本主题
 * 贴子主题:  【Vue.js技术专题】组件的递归 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2022-08-29 16:15:45     消息  查看  搜索  好友  邮件  复制  引用

本文参考孙卫琴,杜聚宾所创作的 <<精通Vue.js: Web前端开发技术详解>>一书

在一个组件的模板中,还可以嵌套自身组件,这样就构成了组件的递归。为了避免无限递归,需要设置递归的结束条件。在例程1的recursive.html中,<category>组件的模板会插入自身组件,从而递归遍历访问list数组中的所有嵌套的元素。模板中“<template v-if="list">”的v-if指令用来设置递归结束条件,当list数组为空,就结束递归。

例程1  recursive.html
    <div id="app">
      <category :list="items"></category>
    </div>

    <script>
      const app=Vue.createApp({
        data(){
          return {
            items:[{
              type:'生物',  
              subtype:[
                {
                   type:'植物',
                   subtype:[{type:'树木'},{type:'灌木'},{type:'青草'}]
                },
                {
                   type:'动物',
                   subtype:[{type:'猫'},
                              {type:'狗'},
                              {type:'鱼',
                               subtype:[{type:'鲤鱼'},{type:'鲨鱼'}]}
                             ]
                }
              ]          
            }]
          }
        }
      })

      app.component('category', {
        props:{
          list:{type:Array}
        },
        template: ` <ul><template v-if="list">
            <li v-for="item in list">
               {{item.type}}
               <category :list="item.subtype"></category>
            </li>
          </template></ul> `
      })
      app.mount('#app')
    </script>

通过浏览器访问recursive.html,会得到如图1所示的网页,list数组中的嵌套内容会以缩进对齐的方式一层层展示出来。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1  recursive.html的网页






程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->多线程(上)
  JavaWeb开发-->使用Session(Ⅰ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->Java反射机制
  精通Spring-->创建综合购物网站应用
  Vue3开发-->虚拟DOM和render()函数
  【Vue.js技术专题】Vue组件的数据监听
  【Vue.js技术专题】Vue组件的命名规则
  【Vue.js技术专题】Vue组件的单向数据流
  【Vue.js技术专题】命名路由
  【Vue专题】Vue组件的CSS过渡模式
  【持久化专题】用orphanRemoval属性映射父子关系
  【持久化专题】映射一对多双向关联关系
  【持久化专题】EntityManager和Session的merge()方法详解
  【Java网络编程专题】用Apache HttpClients下载网上的图片等...
  【Java网络编程专题】用Java套接字编写基本的客户/服务器程序
  【JavaWeb专题】在Servlet中利用Apache开源类库实现文件上传
  【JavaWeb专题】Tomcat与IIS集成详解
  【JavaWeb专题】选择32位或64位JDK或者Apache HTTP服务器的安...
  【Java基础编程专题】用内部类实现回调
  【Java基础编程专题】为什么说:继承关系最大的弱点就是打破...
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。