Vue具名插槽+作用域插槽的混合使用方法
vue + elementui 的项目中,通过后端返回的数据动态封装表单组件。
其中有些场景:
1、有些下拉框是联动的,例如前面的一个下拉框选择值之后,后一个下拉框才根据前面的下拉框选择的值加载数据;
2、有些输入框后面跟一个图形操作等等
上面的需求就需要用到插槽了。
这里只简单的介绍 具名插槽+作用域插槽 混合在一起使用的方法。
其中组件 mulForms.vue 里面封装的代码是(注意 slot里面的写法):
<template v-if="item.slotName"> <el-form-item :label="item.name" :disabled="item.isedit == 0" :prop="item.columncode" > <slot :name="item.slotName" v-bind="{ item, formResult }" ></slot> </el-form-item> </template>
注解:
slot中的 :name=“item.slotName” 是具名插槽的使用, v-bind=“{ item, formResult }” 是向父组件传递的子组件的数据。
其中父组件引用的时候:
<mulForms> <template v-slot:framesystem="{item,formResult}"> <div class="form-item"> <span>{{item.name}}</span> </div> </template> <template v-slot:computesign="{item,formResult}"> <div class="form-item"> <span>item:{{item.name}}</span> </div> </template> </mulForms>
注解:
v-slot:framesystem=“{item,formResult}” 中的 framesystem 为name,后面的 {item,formResult} 为组件向父组件返回的数据。
总结:
1、vue官网说的都不是很明确,其中组件里面的 v-bind=“{ item, formResult }” 这样的返数据,在官网没有找到这样的写法,还是参考别人的写法。
2、在引用组件的时候,父组件中 v-slot:computesign=“{item,formResult}” 的写法,computesign 就是表单组件中 item.slotName 的name值,后面的 { item, formResult } 就是父组件接收的表单组件返回的数据。如此就是 具名+作用域 插槽的用法
到此这篇关于Vue具名插槽+作用域插槽的混合使用的文章就介绍到这了,更多相关vue插槽内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue使用xlsx和xlsx-style导出表格出现部分样式缺失的问题解决
这篇文章主要为大家详细介绍一下Vue使用xlsx-style导出excel时样式的设置,以及出现添加背景色,合并单元格部分样式缺失问题的解决,需要的可以参考下2024-01-01基于Ant-design-vue的Modal弹窗 封装 命令式与Hooks用法
这篇文章主要给大家介绍了基于Ant-design-vue的Modal弹窗封装命令式与Hooks用法,文中有详细的代码示例,具有一定的参考价值,感兴趣的同学可以借鉴阅读2023-06-06Vue中使用elementui与Sortable.js实现列表拖动排序
这篇文章主要为大家详细介绍了Vue中使用elementui与Sortable.js实现列表拖动排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-04-04解决Vue警告Write operation failed:computed value is readonl
这篇文章主要给大家介绍了关于如何解决Vue警告Write operation failed:computed value is readonly的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2023-03-03
最新评论