vue 组件嵌套

组件可以嵌套组件

组件可以嵌套自身组件,然后可以用递归思想来做

比如过树形菜单的时候,可以循环嵌套自身组件,知道没有子元素

列子

<body>

<div id="app">

<m-tree :data="treeList"></m-tree>

</div>

</body>

<script>

Vue.component("m-tree-list",{

props:{

data:{

type:Array,

defualt:[]

},

increment:{

type:Number,

default:0

}

},

computed:{

count(){

var c = this.increment;

return ++c;

},

stylePadding(){

return {

‘padding-left‘:this.count*16+‘px‘

}

}

},

template:`

<ul>

<li v-for="item of data">

<div class="tree-title" :style="stylePadding" >

<span><strong>{{item.title}}</strong> <i class="ico"></i></span>

</div>

<m-tree-list

v-if="item.chidren"

:increment="count"

:data="item.chidren"

>

</m-tree-list>

</li>

</ul>

`

})

Vue.component("m-tree",{

props:{

data:{

type:Array,

defualt:[]

}

},

template:`

<div class="tree-menu-comm tree-menu">

<m-tree-list :data="data"></m-tree-list>

</div>

`

})

var data = [{

title: "目录",

chidren: [{

title: "我的音乐",

chidren: [{

title: "周杰伦",

chidren: [{

title: "发如雪"

}]

}, {

title: "王杰",

chidren: [{

title: "一场游戏一场梦"

}]

}]

}, {

title: "我的照片"

}]

}];

new Vue({

el:"#app",

data:{

treeList:data

}

})

</script>

原文地址:https://www.cnblogs.com/blccy/p/8223723.html

时间: 2024-08-30 18:30:32

vue 组件嵌套的相关文章

Vue.js之组件嵌套小demo

Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个组件文件 Header.vue文件: 1 <!--1模板:html结构 --> 2 <template> 3 <header> 4 <h1>{{title}}</h1> 5 </header> 6 </template> 7

Vue.js之组件嵌套

Vue.js中组件嵌套有两种方式 第一种:注册全局组件 例如在components文件夹下新建一个User.vue组件,然后在main.js文件中注册全局组件 1 //注册全局组件 2 Vue.component("users",Users); //前面的users是我们起的名字,后面的Users是我们对应的组件,想要识别这个组件,必须在上面通过import引入, 3 //引入组件 4 import Users from './components/Users' 有了全局组件的话,就可

vue基础——组件(组件嵌套)

介绍 vue中页面是由组件组成的,即以.vue结尾的文件. .vue文件由三部分组成,分别是template.script.style. 分别写html.js.css代码. 组件之间可以互相嵌套.所以就形成了整个页面. 外部引用的都是一些公共的方法和样式这种. 组件嵌套 1.创建一个login组件 2.的在HelloWorld.vue中引用 export default就是可以让外部引用的意思. 原文地址:https://www.cnblogs.com/zhanzhuang/p/9241232.

vue-父子组件嵌套的示例

组件注册: // 注册组件 Vue.component('my-component', { template: '<div>A custom component!</div>' }) 注册局部组件 var childComponent = Vue.extend({ template: '<p>this is child template</p>' }); Vue.component("parent",{ template: '<di

vue组件最佳实践

看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的.1.让开发者和开发团队更容易发现一些事情.2.让你更好的利用你的IDE.3.让你更加容易的使用打包工具4.让你的代码更容易碎片化以达到复用的目的. 基于模块开发 用一些功能单一的小模块来组织你的应用 Why? 对于你自己和你团队的人来说较小的模块更容易看懂 维护 复用和调试. How? 每个组件应该保持单一 独立 可复用 可测试把你很大的组件拆

vue组件试错

[Vue warn]: Property or method "child1" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option. 解:在使用动态组件<component :is="prop_from_data">的时候,prop_from_data没有指

Vue组件基础用法

前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需,使用不同的组件来拼接页面.这种开发模式使前端页面易于扩展,且灵活性高,而且组件之间也实现了解耦.本文将详细介绍Vue组件基础用法 概述 组件是一个自定义元素或称为一个模块,包括所需的模板.逻辑和样式.在HTML模板中,组件以一个自定义标签的形式存在,起到占位符的功能.通过Vue.js的声明式渲染后,

vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> <child v-bind:my-message="parentMsg"></child>//注意传递参数时要用-代替驼峰命名,HTML不区分大小写 </div> 子组件: Vue.component('child', { // camelCase in Ja

【Vue】详解Vue组件系统

Vue渲染的两大基础方式 new 一个Vue的实例 这个我们一般会使用在挂载根节点这一初始化操作上: new Vue({ el: '#app' }) 注册组件并使用 通过Vue.component()去注册一个组件,你就可以全局地使用它了,具体体现在每个被new的 Vue 实例/注册组件, 的template选项属性或者对应的DOM模板中,去直接使用 注册组件 全局注册 例如,放在通过new创建的Vue实例当中: Vue.component('my-component', { template: