博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
父组件子组件实现子组件闭合的功能
阅读量:5100 次
发布时间:2019-06-13

本文共 1392 字,大约阅读时间需要 4 分钟。

父组件子组件实现闭合效果如下:这里点击不同的同学展示隐藏的div,同时没有被点击的同学隐藏div,

这个效果代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.title {
width: 120px;
border: 1px solid pink;
line-height: 36px;
text-align: center;
}
</style>
</head>
<body>
<div id="app">
<collaspe>
<collaspe-item title="大学同学">大学同学1</collaspe-item>
<collaspe-item title="高中同学">高中同学1</collaspe-item>
<collaspe-item title="初中同学">初中同学1</collaspe-item>
</collaspe>
</div>
</body>
</html>
<script src="./node_modules//vue//dist//vue.min.js"></script>
<script>
//$children-获取子组件的实例 $parent--获取父组件的实例
Vue.component("collaspe", {
methods: {
handleChange(childId) {
this.$children.forEach(element => {
if (element._uid != childId) {
element.show = false;
}
});
}
},
template: `<div class = 'box'>
<slot></slot>
</div>`
});
Vue.component("collaspe-item", {
props: ['title'],
mounted() {
console.log(this.$parent)
},
methods: {
change() {
this.$parent.handleChange(this._uid)// 每个组件有相应的_uid
this.show = !this.show;
}
},
data() {
return {
show: false
}
},
template: `<div >
<div class = 'title' @click='change'>{
{title}}</div>
<div v-show='show'>
<slot></slot>
</div>
</div>`
})
let vm = new Vue({
el: '#app',
data: {
},
})
</script>

 

转载于:https://www.cnblogs.com/zhx119/p/11099374.html

你可能感兴趣的文章
练习2
查看>>
【ASP.NET】演绎GridView基本操作事件
查看>>
ubuntu无法解析主机错误与解决的方法
查看>>
尚学堂Java面试题整理
查看>>
08-【jsp重点】
查看>>
小记:xml画一个爱心。
查看>>
MySQL表的四种分区类型
查看>>
使用File类递归列出E盘下全部文件
查看>>
总结30个CSS选择器
查看>>
React-Native 学习笔记-Android开发平台-开发环境搭建
查看>>
ios程序编译链接参数 all_load 的 ld duplicate symbol _main 的 bug及修复
查看>>
Spring Boot常用的注解以及含义<持续更新>
查看>>
bzoj 2508: 简单题【拉格朗日乘数法】
查看>>
7.26
查看>>
dll--二进制层面的复用
查看>>
linux 压缩/解压缩/打包命令
查看>>
守护进程
查看>>
CLR 关于强命名程序集 .
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
JS组件系列——表格组件神器:bootstrap table
查看>>