在模板中,我有:
<template>
<div ref="PopupContent" class="popupContent" :style="data.contentStyle">
</template>
在设置中,我有:
export default defineComponent({
name: "Popup",
setup() {
const data = ref({
someOtherProp: 0,
style: <StyleValue>(),
someOtherOtherProp: false,
retries: 0,
});
如果需要的话,我还可以将一些对象定义为接口,但也许存在可以使用的现有类型。我仍然不知道安装程序的正确语法。
interface StyleProps {
left: string;
right: string;
top: string;
bottom: string;
width: string;
height?: string;
}
如果我这样做了,有没有一种好的方法可以让所有使用它们的代码都可以访问它们?
我试图找到一种方法来定义样式,而不会在后面的代码中遇到问题,例如设置this.data.style [“width”]。
所以作为对其中一个答案的回应,这似乎起作用了,但我还有一个进一步的问题:
const style: Partial<CSSStyleDeclaration> = {};
const arrowStyle: Partial<CSSStyleDeclaration> = {};
const data = ref({
strokeWidth: 0.108,
style: style,
arrowStyle: arrowStyle,
});
有没有一种方法可以内联地定义const data,而不是笨拙地定义单独的变量?
3条答案
按热度按时间3phpmpom1#
我想你正在寻找:
Partial<CSSStyleDeclaration>
文档:
部分
CSSStyleDeclaration
llycmphe2#
你可以使用一个接口和泛型优雅地做到这一点,像这样:
kzipqqlq3#
这是一个应用程序示例(它实际上没有做任何事情),但向您展示了如何为typescript中的样式动态设置值。如果不设置类型,vue3会在getStyle(n)上停止。