Vue递归组件 1、递归组件 2、实例 1、递归组件 组件可以在自己的模板种递归调用自身,但这需要使用name选项为组件指定一个内部调用的名称。...当调用Vue.createApp({}).component({})全局注册组件时,这个全局的ID会自动设置为该组件的name选项。 ...递归组件和程序语言中的递归函数调用一样,都需要有一个条件结束递归,否则就会导致无限循环。例如,可以通过v-if指令(表达式计算为假时)结束递归。...category-component :list="categories"> vue..., { name: '前端框架', children: [ {name: 'Vue.js
一、建一个.vue的子组件 <li v-for="(item,index) in treeData...) { return { }; }, methods: { handleClick(){ console.log("最底层级") } } } 二、父组件使用.../digui.vue" 数据结构 treeData:[ { name:"名称11" }, {
如果没有结束点,递归将成为一个无限循环,但是如果一组规则就不能实现期望的行为,所以两者都存在才能使它正常工作。 递归和 Vue 组件 在 Vue 中,递归非常有用。...当然,不仅仅在 Vue 中,咱们可以遵循上面的规则在任何框架中实现递归行为。因此,根据给定的定义,咱们可以说递归组件是调用自身的组件。 递归组件什么时候有用?...只要咱们需要使用相同的模板结构,但需要使用分层输入数据,就可以使用递归。 如果树状视图(用于显示文件夹结构),网站上的注释,嵌套菜单等组件等等。 接着,咱们建立一个场景来演示递归组件的用途。...root 组件将包含一个folder属性,咱们会把root数据对象绑定到该属性上。此属性将传递给子组件,子组件将递归地创建基于它的文件夹树结构。...希望本文能够更好帮大家理解递归以及如何使用Vue创建递归组件。
---- 本文简介 点赞 + 关注 + 收藏 = 学会了 在日常 Vue 项目中,大概率会用组件库辅助开发,所以 递归组件 的出镜率可能不会非常高。但这并不代表 递归组件 不重要。...本文用10分钟左右的时间让你掌握 递归组件 的用法。 在此之前,你必须掌握:html + css + js + Vue3 基础用法,至少需要知道 Vue 组件 是什么。...看到这里,我相信大家是知道 Vue组件 是什么。 我先把 《Vue3 递归组件 文档》 放在这。 其实 递归组件 就是把 “递归” 和 “组件” 结合起来。...步骤如下: 创建导航组件 全局注册导航组件 获取数据(本例以学习为目的,所以在前端写死数据) 在导航组件中设置递归边界,并渲染数据 1、创建组件 我给导航组件命名为 RootNav.vue 。...但本文的目的是学习递归组件,所以就直接在前端模拟了一份 “请求回来的数据”。 我把 “请求数据” 的操作放在 App.vue 。然后再通过 props 的方式传入到 RootNav.vue 组件内。
前文 我们需要做一个树形组件用来展示一些无限子级的数据时就要用到vue提供的递归组件 首页了解一下 vue 中 name属性 为什么 export 有name这个属性 name 类型:string...详细: 允许组件模板递归地调用自身。 注意,组件在全局用 Vue.component() 注册时,全局 ID 自动作为组件的 name。 指定 name 选项的另一个好处是便于调试。...有名字的组件有更友好的警告信息。另外,当在有 vue-devtools,未命名组件将显示成 ,这很没有语义。通过提供 name 选项,可以获得更有语义信息的组件树。...利用组件循环实现未知限制的数据展示 父级组件 通过这个组件来获取将要展示的无限级数据 tree-list 是用到的的递归组件 使用递归组件时需要给定一个结点 如 v-if=“item.child...: { handleConsole(item){ console.log(item.name, 'tree') }, }, } tree-list 是用来递归的组件
递归组件的应用===》可以通过组件命名来自己使用自己的组件 实例如下 父组件 子组件 递归组件的应用===》可以通过组件命名来自己使用自己的组件--> //自己使用自己的组件... export default { name:'DetailList', //组件命名1K20
这节课,我们来看看在Vue中如何使用递归组件来管理树状结构的数据。在介绍 Vue 中递归组件之前,我们先回顾一下什么是递归。...,但与Vue的递归组件有什么联系?...Vue 递归组件 Vue中的组件是可重用的Vue实例。大多数时候,当我们在Vue中创建一个组件时,只是为了能在其他地方重用它。例如,一个电子商务网站,我们可以在多个页面上显示产品。...如果一个Vue组件在自己的模板中引用自己,那么它就被认为是递归的。递归组件与普通组件不同。除了在其他地方被重用之外,递归组件还在其模板中引用自己。 为什么一个组件会引用自己?...,但我们的目标是探索如何利用Vue中递归组件的力量来渲染嵌套数据。
slot分发内容 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板。这个过程被称为内容分发。Vue中使用特殊的 元素作为原始内容的插槽。...异步组件 Vue.js 允许将组件定义为一个工厂函数,异步地解析组件的定义。...components: { myComponent: { /* ... */ } } 递归组件 一定要确保递归调用有终止条件,可以通过v-if进行控制。...递归组件示例:https://jsfiddle.net/381510688/nhhfL1bd/ 组件间的循环引用 参考官网地址:https://cn.vuejs.org/v2/guide/components.html...对低开销的静态组件使用v-once 尽管在 Vue 中渲染 HTML 很快,不过当组件中包含大量静态内容时,可以考虑使用 v-once将渲染结果缓存起来,就像这样: Vue.component('terms-of-service
$emit('input',val); } } }; // 创建vue实例对象 const app = new Vue({ el: '#app', data: { name: '' },...components: { MyComponent } }); 动态组件,动态地切换组件的显示内容,多个组件可以使用同一个挂载点。...const C1Component = { template: '#c1' }; const C2Component = { template: '#c2' }; // vue实例对象 const...app = new Vue({ el: '#app', data: { currentComponent: 'C1Component' }, components: { C1Component..., C2Component, } }); 递归组件,需要有一个结束的判断,否则就会一直循环。
周末在家闲着无聊,突然小弟过来紧急求助,说是面试腾讯的时候,对方给了个 Vue 的递归菜单要求实现,回来找我复盘。...正好这周是小周,没想着出去玩,就在家写写代码吧,我看了一下需求,确实是比较复杂,需要利用好递归组件,正好趁着这个机会总结一篇 Vue3 + TS 实现递归组件的文章。...实现 这很显然是一个递归组件的需求,在设计递归组件的时候,我们要先想清楚数据到视图的映射。...由于需求要求每一层的样式可能是不同的,所以再每次调用递归组件的时候,我们都需要从父组件的 props 中拿到一个 depth 代表层级,并且把这个 depth + 1 继续传递给递归的 NestMenu...,它负责递归的渲染子组件。
步骤: 1.在组件内设定 name 属性 2.使用这个 name 属性作为标签在组件自己的template里面渲染 3.注意为了避免死循环,需要指定终止条件 下面是一个vue脚手架创建的示例 如图: image.png...现在可以将这个组件引入到home中看看效果 image.png 就有了下图效果 image.png 2.用组件递归实现评论盖楼的功能 目标:将下面这段评论数据以楼层的形式渲染到页面 comments:..., user: "铁蛋", }, ] 2.1-用vue脚手架搭建一个基本的结构 创建两个组件: Comments:展示用户评论的组件 Floor:展示用户回复的用户评论...(即我们需要递归的组件) image.png 2.2-在Home首页引入Comments组件,进行第一层评论数据渲染 image.png 2.3-Comments组件获取评论数据进行渲染 假设comments...Floor组件进行递归渲染这些数据,因为我们无法预知它一共有多少层 image.png 2.5-Floor组件接收Comments传递过来的数据,递归渲染 image.png 现在页面显示就是如下样式:
今天我们继续使用 Vue 的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的《Vue一个案例引发的动态组件与全局事件绑定总结》 之后,今天来聊一聊我们如何在项目中使用递归组件...这里就要用到我们说的 递归组件 了,无论你的数据怎么增加我们都不用改动我们的代码。 递归组件 什么是递归组件?...简单来说就是在组件中内使用组件本身,下面我们就来看看如何在项目中使用递归组件去解决我们上面问题。...首先我们先创建一个 List 的递归组件 <div class="list-item" v-for="(item, index) in list...总结 如上就是我们今天要说的递归组件,小伙伴们赶紧上手试试吧。 类似与信息分类的展示在我们的项目中是非常常见的形式,我们利用递归组件可以很好的去解决问题 文中如有不足之处,欢迎大神留言,拍砖!
/components/menuItem.vue" import { useRoute } from "vue-router" const route = useRoute() const menuList...= [ { path: "/index", component: () => import("@/views/index.vue"), name...level-1/level-1-1", component: () => import("@/views/level/level-1/level-1-1.vue...path: "/level/level-2", component: () => import("@/views/level/level-2.vue... import { Aim } from '@element-plus/icons-vue
今天我们继续使用 Vue 的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的《Vue一个案例引发的动态组件与全局事件绑定总结》 之后,今天来聊一聊我们如何在项目中使用递归组件...这里就要用到我们说的 **递归组件** 了,无论你的数据怎么增加我们都不用改动我们的代码。 递归组件 什么是递归组件?...**简单来说就是在组件中内使用组件本身**,下面我们就来看看如何在项目中使用递归组件去解决我们上面问题。...首先我们先创建一个 List 的递归组件 递归组件可以很好的去解决问题 文中如有不足之处,欢迎大神留言,拍砖! [guanzhu1.png]
Vue组件化思想 组件化是Vue中的重要思想,当我们对vue的基本知识有了一定的基础就要开始封装组件了 它提供了一种抽象,让我们可以开发出一个个独立可复用的小组件来构造我们的应用。组件树。...的 .vue 单文件组件来写。...注册组件 分为 局部注册 与 全局注册,下一章再讲 ......使用代码......... import cInput from "组件地址/c-ipunt.vue"; export default...from "组件地址/c-ipunt.vue"; export default { components: {cInput}, .......... 二.丰富组件 组件是独立的作用域,就像我们 Node 中的 JavaScript 模块一样,独立的 组件其实就是一个特殊的 Vue 实例,可以有自己的 data、methods
Vue 递归多级菜单 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 考虑以下菜单数据: [ { name: "About", path: "/about", children...首先创建两个组件 Menu 和 MenuItem // Menuitem .../MenuItem"; export default { name: "Menu", props: ["router"], // Menu 组件接受一个 router 作为菜单数据...this.toggleShow; } } }; Menu 组件外层是一个 ul 标签,内部是 vFor 遍历生成的 MenuItem 这里有两种情况需要做判断... import Menu from '@/components/Menu.vue
Vue组件基础–简单了解vue组件 Vue组件是什么?...组件就像是提前做好的模具,使用时拿出来就行,可以重复调用,它跟普通的Vue有一样的属性: data (数据存放) computed(计算属性) watch(监听属性) methods(方法存放)...-- 使用v-bind(:)动态传递prop --> Vue.component('my-p',{ props:['title'], //props向子组件传递数据...` //子组件通过 $emit 方法并传入事件名触发事件 //$emit可以使用第二个参数向上抛值,监听的父组件通过$event获取 }) new Vue({ el:...-- 组件中v-model的使用 --> {{myText}} Vue.component(
封装 vue-material-design:Vue MD风格组件 vue-morris:Vuejs组件封装Morrisjs库 we-vue:Vue2及weui1开发的组件 vue-image-clip...vue-cmap:Vue China map可视化组件 vue-button:Vue按钮组件 二、Vue.js开发框架 vue.js:流行的轻量高效的前端组件化方案 vue-admin:Vue管理面板框架...:vue的Bootstrap样式组件 vuep:用实时编辑和预览来渲染Vue组件 vue-online:reactive的在线和离线组件 vue-lazy-render:用于Vue组件的延迟渲染...– 易于使用的滑块组件 vue-images – 显示一组图片的lightbox组件 vue-carousel-3d – VueJS的3D轮播组件 vue-slide – vue轻量级滑动组件...vue-slider – vue 滑动组件 vue-m-carousel – vue 移动端轮播组件 dd-vue-component – 订单来了的公共组件库 vue-easy-slider
, 13 8月 2021 作者 847954981@qq.com 前端学习 Vue组件 组件就是可复用的Vue实例,在开发过程中,我们可以把重复使用的功能封装成自定义组件,以达到便捷开发的目的。...为了能在模板 中使用,这些组件必须先注册以便 Vue能够识别。...组件的注册 在 Vue 中,组件的注册分全局注册和局部注册两种: 全局注册:用 Vue.component 来创建组件,注册之后可以在任何新创建的 Vue 根实例中使用; 局部注册:在单个 Vue 格式的文件中创建组件...组件的创建 每个Vue格式的文件都可以作为一个组件来使用 组件的局部注册 首先我们需要创建一个Vue文件 然后需要定义组件名字 图片 在需要使用的地方,注册组件、引入组件以及使用组件 组件内数据...这种情况,如果我们需要父组件事件一起触发,可以添加 Vue 修饰符 修饰符使用点开头的指令后缀表示的 如 .prevent 和 .capture 而要让父组件内容被执行,我们需要添加 .native 修饰符
领取专属 10元无门槛券
手把手带您无忧上云