kus*_*uya 3 typescript vue.js vuejs3
我正在使用 Vue.js 3.0 和 TypeScript 进行开发。
\n我想定义一个在多个组件中使用的枚举。
\n我应该如何以及在文件中写入什么?
目录
\nsrc/\n\xe2\x94\x9c components/\n\xe2\x94\x82 \xe2\x94\x9c ParentComponent.vue\n\xe2\x94\x82 \xe2\x94\x94 ChildComponent.vue\n\xe2\x94\x94 App.vue\n
Run Code Online (Sandbox Code Playgroud)\n子组件.vue
\n<template>\n <p>{{ color }}</p>\n</template>\n\n<script lang="ts">\nimport { defineComponent, PropType } from 'vue'\n\nenum Color {\n red = 1,\n blue\n}\n\nexport default defineComponent({\n props: {\n color: { type: Color, required: true }\n }\n})\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n父组件.vue
\n<template>\n <div>\n <ChildComponent\n :color="state.color"\n />\n </div>\n</template>\n\n<script lang="ts">\nimport ChildComponent from './ChildComponent.vue'\nimport { defineComponent, reactive } from 'vue'\n\n// duplicate\nenum Color {\n red = 1,\n blue\n}\n\ninterface State {\n color: Color\n}\n\nexport default defineComponent({\n components: {\n ChildComponent\n },\n setup () {\n const state = reactive<State>({\n color: Color.red\n }\xef\xbc\x89\n return { state }\n }\n})\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n
小智 5
您可以在单独的文件中定义和导出枚举,然后将其导入到不同的文件中以使用它。您将该文件放在哪里主要取决于您想要如何构建项目。
例如,文件夹types.ts
中的文件src
可以定义和导出枚举,如下所示:
export enum Color {
red = 1,
blue = 2
}
Run Code Online (Sandbox Code Playgroud)
您可以通过导入来在任何地方使用枚举,如下所示:
import { Color } from '@/types';
Run Code Online (Sandbox Code Playgroud)
这是假设您已在文件中提供的 TypeScript 配置中src
为该文件夹起了别名。@
tsconfig.json
归档时间: |
|
查看次数: |
4092 次 |
最近记录: |