useSelected
基础用法
import { useDict, useSelected } from "vue-dictionary";
const dictOption = { label: "title", value: "id" };
const dictData = ref([
{ title: "apple", id: "1" },
{ title: "banana", id: "2" },
{ title: "cherry", id: "3" }
]);
const value = ref("1");
const selected = useSelected(dictData, value, dictOption);
console.log(selected.value);
dictData.value[0].title = "app";
console.log(selected.value);
value.value = "2";
console.log(selected.value);
多选值
const dictData = [
{ title: "apple", id: "1" },
{ title: "banana", id: "2" },
{ title: "cherry", id: "3" }
];
const selected = useSelected(dictData, ["1", "2"]);
console.log(selected.value);
返回字典名称
const dictData = [
{ title: "apple", id: "1" },
{ title: "banana", id: "2" },
{ title: "cherry", id: "3" }
];
const selectedLabel = useSelected(dictData, "1", { returnLabel: true });
console.log(selectedLabel.value);
const selectedLabels = useSelected(dictData, ["1", "2"], { returnLabel: true });
console.log(selectedLabels.value);
类型定义
export type UseSelectedConfig<L> = MaybeRef<{
label?: string;
value?: string;
children?: string;
returnLabel?: L;
}>;
export type SelectedData = MaybeRef<DictItem[] | undefined>;
export type SelectedValue<T> = MaybeRef<T | undefined>;
export type SingleValue = SelectedValue<boolean | string | number>;
export type MultipleValue = SelectedValue<string[] | number[]>;
export type useSelectedReturn<T> = ComputedRef<T>;
export function useSelected(
selectedData: SelectedData,
selectedValue: SingleValue,
config?: UseSelectedConfig<false | undefined>
): useSelectedReturn<DictItem>;
export function useSelected(
selectedData: SelectedData,
selectedValue: MultipleValue,
config?: UseSelectedConfig<false | undefined>
): useSelectedReturn<DictItem[]>;
export function useSelected(
selectedData: SelectedData,
selectedValue: SelectedValue<DictValue>,
config?: UseSelectedConfig<false | undefined>
): useSelectedReturn<DictItem | DictItem[]>;
export function useSelected(
selectedData: SelectedData,
selectedValue: SelectedValue<DictValue>,
config?: UseSelectedConfig<true>
): useSelectedReturn<string>;
export function useSelected(
selectedData: SelectedData,
selectedValue: SelectedValue<DictValue>,
config?: UseSelectedConfig<boolean>
): useSelectedReturn<DictItem | DictItem[] | string>;