hug-sun / element3

A Vue.js 3.0 UI Toolkit for IT Education. Build with JS&TS
https://e3.shengxinjing.cn/
MIT License
3.28k stars 1.01k forks source link

类似于 input的 append slot 是不是可以有一个函数传递,以达到扩大点击范围。 #550

Closed mrandpz closed 3 years ago

mrandpz commented 3 years ago

rt,可以以样式的形式去改动,但如果增加一个函数传递会不会更好点 image

cuixiaorui commented 3 years ago

是否有可参考的 demo ?

着可以帮助我更容易理解你的需求哈

mrandpz commented 3 years ago

demo

cuixiaorui commented 3 years ago

你想要的是点击范围,这个本身就和样式有关系的

通过一个函数怎么控制?

可以提供下你的想法哈

比如,你希望的是这个函数是什么样的,使用方式是什么样的

mrandpz commented 3 years ago

类似以下代码

 <div class="append" @click="handleClick" v-if="$slots.append">
        <slot name="append"></slot>
  </div>

...
const handleClick = ()=>{
      ctx.emit('appendClick')
      console.log('handleClick')
    };
<TestSlot @appendClick="appendClick" someProps="someProps">
    <template v-slot:append>
      <div>append</div>
    </template>
  </TestSlot>

这样我传递一个click函数就可以点击到 append 的范围了,而不用去 reset 这个 style。

cuixiaorui commented 3 years ago

template 本身是不会渲染出来的,给了它一个点击范围,只能是写死的。

并且组件库并不能确定用户想扩大 click 范围具体是哪里

基于扩展性来讲,用户通过自定义样式会更好

感谢你的反馈