Vue中的v-slot如何使用
Posted 熬夜的小青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中的v-slot如何使用相关的知识,希望对你有一定的参考价值。
今天看了看Vue的文档,发现了v-slot这个指令,生怕掉队的我赶紧补习了一下
直接上代码!!!
//父组件
<template>
<!--在此处添加渲染的内容-->
<div>
<el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button>
<base-prop :dialogFormVisible="dialogFormVisible" :title="title" @backBtn="back" @submitBtn="submitBtn">
//这种是简写方式,也可以写成v-slot:contents,还可以使用作用域
<template #contents>
<el-form :model="form">
<el-form-item label="活动名称" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="活动区域" :label-width="formLabelWidth">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
</base-prop>
</div>
</template>
<script type="text/ecmascript-6">
import BaseProp from './BaseProp.vue'
//将渲染的内容导出
export default
props: ,
data()
return
dialogFormVisible: false,
title: '测试',
form:
name: '',
region: ''
,
formLabelWidth: '120px'
,
methods:
submitBtn(obj)
console.log(this.form);
console.log(obj);
,
back(b)
this.dialogFormVisible = b;
,
components: BaseProp,
computed: ,
watch: ,
created()
,
mounted()
,
</script>
<style scoped>
/**渲染内容的样式**/
</style>
//子组件
<template>
<!--在此处添加渲染的内容-->
<div>
<el-dialog :title="title" :visible.sync="visible">
<slot name="contents"></slot>
<div slot="footer" class="dialog-footer">
<el-button @click="back">取 消</el-button>
<el-button type="primary" @click="submit">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script type="text/ecmascript-6">
//将渲染的内容导出
export default
props:
title: //标题
type: String,
default: () =>
return '弹出层'
,
dialogFormVisible:
type: Boolean,
required: true
,
data()
return
visible: false
,
methods:
back()
this.visible = false;
,
submit()
this.$emit('submitBtn', true);
,
components: ,
computed:
,
watch:
'dialogFormVisible': function (newVal, oldVal)
this.visible = newVal;
,
'visible': function (newVal, oldVal)
this.$emit('backBtn', newVal);
,
created()
,
mounted()
,
</script>
<style scoped>
/**渲染内容的样式**/
</style>
以上是关于Vue中的v-slot如何使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Table Bootstrap Vue 中为行禁用 v-slot
vue2升级vue3:Vue2/3插槽——vue3的jsx组件插槽slot怎么处理