工作经验两年了,这次项目刚搞懂文件上传怎么回事,好可悲,呜呜
回到正题,移动端项目,想自己写一个vue的文件上传组件
现在碰到一个问题,既然是组件可定要支持传入不同的内容,所以用了slot
但点击事件要加在这个插槽的内容上,请教:如何解决
例如:
调用组件
<my-upload>
<img src='./xxxx.png'/>
</my-upload>
定义组件
<div>
<slot></slot>
</div>
工作经验两年了,这次项目刚搞懂文件上传怎么回事,好可悲,呜呜
回到正题,移动端项目,想自己写一个vue的文件上传组件
现在碰到一个问题,既然是组件可定要支持传入不同的内容,所以用了slot
但点击事件要加在这个插槽的内容上,请教:如何解决
例如:
调用组件
<my-upload>
<img src='./xxxx.png'/>
</my-upload>
定义组件
<div>
<slot></slot>
</div>
定义:
<slot
name="item"
:item="item"
:selectKeysObject="selectKeysObject"
:onCheck="() => onSelect({ id: item[sourceId], item })"
></slot>
使用:
<template #item="{ item, selectKeysObject, onCheck }">
<div :class="$style.list">
<div :class="$style.check" @click="onCheck">
<simple-checkbox :checked="Boolean(selectKeysObject[item.sourceId])"></simple-checkbox>
</div>
<div :class="$style.img">
<loading-image :url="item.sceneImg" />
</div>
<div>{{ item.absTimestamp }}</div>
<div :class="$style.deviceName" :title="item.deviceName">{{ item.deviceName }}</div>
</div>
</template>
利用箭头函数,在使用的地方解析出来直接使用
直接在slot上加,不了解……上边两个回答都可以。
然后,不明白你的意图,如果用slot承接不同的内容,不同内容也可能会有不同的响应事件,那不如直接在承接的内容上加事件...
9 回答1.6k 阅读✓ 已解决
6 回答935 阅读
3 回答1.3k 阅读✓ 已解决
4 回答944 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答848 阅读
3 回答1.3k 阅读✓ 已解决
直接加在父级上就好了