vue3-插槽作用域的使用
2024-09-07 01:22:53
当我们在父组件定义了一个数组,
data() {
return {
name: ["lkx", "msx"]
}
}
想把它传到子组件处理后
props: {
names: {
type: Array,
default: () => []
}
}
通过插槽的方式再传送回父组件
<template v-for="(item,index) in names" :key="item">
<slot ></slot>
</template>
在父组件对子组件中处理过的数据进行使用时,
比如说我们想要在父组件想使用子组件的item和index的内容将他渲染到html上,如果我们直接使用
<div>
<show-names :names="name">
<button>{{item}}</button>
</show-names>
</div>
会出现这样的结果
我们可以这样做,通过作用域插槽的方式来解决
子组件中使用v-bind绑定item和index
<template v-for="(item,index) in names" :key="item">
<slot :item="item" :index="index"></slot>
</template>
父组件中使用v-slot="slotProps"
这里的v-slot="slotProps"是简写形式,因为我们在子组件的slot中没有定义name属性,所以这个slot会有一个默认的name为default,
比方说我们在子组件中定义一个name="lkx",那么父组件中的写法就变成v-slot:lkx="slotProps",又因为v-slot:的语法糖是#,所以父组件最终写为#lkx="slotProps"
<template>
<div>
<show-names :names="name">
<template v-slot="slotProps">
<button>{{ slotProps.item }}</button>
</template>
</show-names>
</div>
</template>
独占默认插槽
<show-names :names="name" v-slot="lkx"> <button>{{ lkx.item }}--{{lkx.index}}</button> </show-names>
嗯,我咋感觉和子传父那么像呢,明天动手试试
最新文章
- EF自动生成的模型edmx代码分析
- 将ASP.NET Core应用程序部署至生产环境中(CentOS7)(转)
- 解决ClickOnce签名过期问题(转载)
- 关于iOS APP中网络层的设计
- Java垃圾回收器
- Guid vs Int
- hdoj 2097 Sky数
- Could not initialize class org.apache.log4j.LogManager 报错
- Hu矩SVM训练及检测-----OpenCV
- SQL Server根据列名查表
- 团队作业4——第一次项目冲刺(Alpha版本)2017.4.22
- 【洛谷2744 】【CJOJ1804】[USACO5.3]量取牛奶Milk Measuring
- JavaScript中Array数组的方法
- react中PureComponent浅对比策略
- 如何搭建一个VUE项目
- C#实现完整的防盗自制监控系统
- 【UVA1660】Cable TV Network
- 完成一个Laravel项目的过程
- go语言切片切片与指针
- zabbix 添加用户 配置权限