用vue实现点击按钮,滑出面板(二)完结版
2017-01-10 16:57
696 查看
在通信的时候容易出错,或者信息根本传不过来。那么这里就示例一下,怎么通过组件之间的通信完成点击事件。
index.vue文件中:
<div>
<el-button type="primary" @click="onShow">点我</el-button>
</div>
传递中介
<addForm :show="formShow" @onHide="formShow = false"></addForm>
引入组件,即是要弹出的组件
import addForm from './docsForm'
export default {
components: {
addForm
},
data() {
return {
show: false,
formShow: false
}
},
watch: {
show: {
handler: function(newVal, oldVal) {
this.show = newVal
},
deep: true
}
},
methods: {
onShow() {
this.formShow = true
}
}
}
该文件里面的方法就是这样。
然后就是弹出组件docsForm.vue怎样向上传数据
<slidePanel :width="550" :show="show" title="添加知识" @changeShow="hide">
<div class="docs-body">
</div>
</slidePanel>
export default {
props: {
show: false
},
methods: {
hide() {
this.$emit('onHide')
},
}
在组件slidePanel.vue中
<template>
<transition name="slide-panel-fade">
<div v-if="show" class="slide-panel" :style="{ width: width + 'px'}">
<div class="slide-panel-layout">
<div class="slide-panel-header">
<h3 class="slide-panel-header-title">{{title}}</h3>
<button class="slide-panel-header-close" @click="onShow"><i class="el-icon-close"></i></button>
</div>
<div class="slide-panel-body">
<slot></slot>
</div>
</div>
</div>
</transition>
</template>
<script>
export default {
props: {
title: String,
show: Boolean,
width: {
type: Number,
default: 500
}
},
methods: {
onShow() {
this.$emit('changeShow', false)
}
},
watch: {
show: {
handler: function(newVal, oldVal) {
this.show = newVal
},
deep: true
}
},
mounted() {
document.body.appendChild(this.$el)
},
destroyed() {
this.$el.remove()
}
}
</script>
这样就可以实现不同组件之间的册拉弹出。
index.vue文件中:
<div>
<el-button type="primary" @click="onShow">点我</el-button>
</div>
传递中介
<addForm :show="formShow" @onHide="formShow = false"></addForm>
引入组件,即是要弹出的组件
import addForm from './docsForm'
export default {
components: {
addForm
},
data() {
return {
show: false,
formShow: false
}
},
watch: {
show: {
handler: function(newVal, oldVal) {
this.show = newVal
},
deep: true
}
},
methods: {
onShow() {
this.formShow = true
}
}
}
该文件里面的方法就是这样。
然后就是弹出组件docsForm.vue怎样向上传数据
<slidePanel :width="550" :show="show" title="添加知识" @changeShow="hide">
<div class="docs-body">
</div>
</slidePanel>
export default {
props: {
show: false
},
methods: {
hide() {
this.$emit('onHide')
},
}
在组件slidePanel.vue中
<template>
<transition name="slide-panel-fade">
<div v-if="show" class="slide-panel" :style="{ width: width + 'px'}">
<div class="slide-panel-layout">
<div class="slide-panel-header">
<h3 class="slide-panel-header-title">{{title}}</h3>
<button class="slide-panel-header-close" @click="onShow"><i class="el-icon-close"></i></button>
</div>
<div class="slide-panel-body">
<slot></slot>
</div>
</div>
</div>
</transition>
</template>
<script>
export default {
props: {
title: String,
show: Boolean,
width: {
type: Number,
default: 500
}
},
methods: {
onShow() {
this.$emit('changeShow', false)
}
},
watch: {
show: {
handler: function(newVal, oldVal) {
this.show = newVal
},
deep: true
}
},
mounted() {
document.body.appendChild(this.$el)
},
destroyed() {
this.$el.remove()
}
}
</script>
这样就可以实现不同组件之间的册拉弹出。
相关文章推荐
- 用vue实现点击按钮,滑出面板(一)
- 使用vue实现点击按钮滑出面板的实现代码
- JS实现点击参数面板按钮显示或隐藏数据
- SWT实现点击菜单项或按钮改变面板内容
- JS实现点击参数面板按钮显示或隐藏数据
- vue和element框架搭配实现导航条跳转,点击按钮跳转页面导航条也跟着变换
- vue.js 实现点击按钮动态添加li的方法
- vue 点击按钮实现动态挂载子组件的方法
- java在线聊天项目 swt可视化窗口Design 登录框注册按钮点击改变窗口大小——出现注册面板 实现打开登录框时屏幕居中
- vue 点击按钮实现动态挂载子组件
- JS实现点击参数面板按钮显示或隐藏数据
- JS实现点击参数面板按钮显示或隐藏数据
- winform中如何实现自动点击webbrowser弹出对话框中的确定按钮
- 点击按钮后实现复制,复制TextBox里面的内容
- aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
- 用代码实现手工“点击按钮”操作
- F:在datagrid中 怎么实现 点击一行(多列)传一个id过去到第二页显示其具体内容,不用按钮、链接等?
- 点击按钮,实现复制网址的代码
- JavaScript 弹出窗体点击按钮返回选择数据的实现
- VC6对话框中,如何实现点击一个按钮,在相应的Edit框里,显示当前时间