function makeSelectionArea( target: MaybeElementRef, options?: SelectionAreaOptions,): SelectionAreaReturn;让元素成为框选区域,用于选择其中的可拖拽元素。选框由你自己渲染:<div v-if="isSelecting" class="band" :style="style" />。
<script setup lang="ts">
const area = useTemplateRef<HTMLElement>('area');
const { isSelecting, style } = makeSelectionArea(area);
</script>
<template>
<div ref="area" class="area">
<!-- items -->
<div v-if="isSelecting" class="band" :style="style" />
</div>
</template>
在区域的空白处按下会开始画选框。参见多项拖拽与选择。
Live
正在加载演示…
<script setup lang="ts">
import { DnDProvider } from '@vue-dnd-kit/core';
import ShapeBoard from './ShapeBoard.vue';
</script>
<template>
<DnDProvider>
<ShapeBoard />
</DnDProvider>
</template>选项
makeSelectionArea 的选项。选框把项选入 provider 的选中集合,也就是多项拖拽和 selected 读取的那个(useDnD().selection)。modifier、strategy、accept 和 disabled 接受值、ref 或 getter(accept:值或 ref,函数即规则),并在按下开始画选框时读取;开启 disabled 还会取消正在进行的选框。
SelectionModifier值 · ref · getter按下时必须按住这些键才会画出选框。默认:无,在空白处的任何按下都会画选框。
SelectionStrategy值 · ref · getter默认为 'toggle'。
AcceptRule值 · ref选框选中哪些可拖拽元素;与放置目标使用相同的匹配器。
boolean值 · ref · gettertrue:按下不会画选框。
(ids: Key[]) => void选框结束:获得现在选中的所有 id。
返回值
makeSelectionArea 的返回值。
ComputedRef<boolean>正在画选框:此时渲染它。
ComputedRef<Record<string, string>>选框矩形元素的样式(绝对定位,相对于容器)。
取值
'toggle':选框经过的项会在画选框之前的状态基础上切换;'select':只有选框内的项被选中。
type SelectionStrategy = 'toggle' | 'select'