- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有时我们可以使用 props
提取常用 Prop 在 defineComponent
功能如下。两者都适用于 vue2/vue3,但不适用于 SFC。
// common-props.js
export default {
commonProps: {
enabled: Boolean,
readonly: Boolean,
}
}
// my-component.vue
import { commonProps } from './common-props';
export default {
props: {
...commonProps,
visible: Boolean,
text: {
type: String,
default: '',
}
}
};
但是当我升级到 <script setup>
. props
由 defineProps
定义这是一个编译器宏。我必须尝试使用 typescript 扩展 Prop 如下。但是从 DevTools 中看不到混合的 Prop 。
// common-props.ts
export interface CommonProps{
enabled?: boolean,
readonly?: boolean,
}
// my-component.vue
<script setup lang="ts">
import CommonProps from './common-props';
interface MyComponentProps extends CommonProps {
visible?: boolean,
text?: string,
}
const props = withDefaults(defineProps<ICheckBoxProps>(), {
visible: false,
text: '',
});
</script>
我的问题是如何从 SFC 组件中提取 Prop 。并使 Vue Devtools 可以识别提取的 Prop 。
最佳答案
Type-only props/emit declarations
As of now, the type declaration argument must be one of the followingto ensure correct static analysis:
- A type literal
- A reference to an interface or a type literal in the same file
Currently complex types and type imports from other files are notsupported. It is theoretically possible to support type imports in thefuture
所以简短的回答是否定的,目前在使用 Type-only props declaration 时无法使用导入类型
但是您仍然可以在 脚本设置
中使用非类型(基于对象)的 prop 声明
// CommonProps.js
export default {
enabled: Boolean,
readonly: Boolean,
}
// Component.vue
<script setup lang="ts">
import {ref} from "vue";
import CommonProps from "./CommonProps.js"
const props = defineProps({
...CommonProps,
items: {
type: Array,
default: () => []
}
})
</script>
<template>
<pre>{{ props }}</pre>
</template>
关于vue.js - SFC `<script setup>` 如何用vue3提取常用 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70060438/
以下代码在使用 TypeScript 编译时会抛出错误。 import React, { SFC } from "react" import { Link } from "react-router-d
我正在向我们的 vue 代码库添加单元测试,发现很难测试元素的可见性。 我照常渲染组件,并按照测试库文档示例中的建议进行渲染,但样式未应用于 DOM 调试(使用 screen.debug)。有什么线索
我有一个 R sf 对象: library(sf) library(magritr) g1 = structure(list(ele = c(1819.80249, 1821.150879, 1825
我们的产品有多个客户,每个客户都有自己的客户特定修改。 有没有办法在 SFC 的 Vue2 模板中根据构建环境变量在构建时有条件地包含或排除其他组件? 看起来我可以使用类似 webpack-condi
假设 t是: t t Geometry set for 2 features geometry type: POLYGON dimension: XY bbox: x
我正在编写一个 powershell 脚本,其中多个命令输出显示在窗口中并附加到文件或变量中。在我使用 sfc 命令之前它工作正常。当通过管道传输或重定向时,输出是“损坏的”: > sfc /? Vé
我用过 ReactDOM.createPortal在有状态组件的 render 方法中,如下所示: class MyComponent extends Component { ...
我是新来的,我想写一个执行命令的C++源代码: sfc.exe /scannow 但它不起作用。 Windows 资源保护无法启动修复服务。 我是一名学生,我上 10 年级,我在学校没有计算机科学,所
每当我向我的 SFC ~home.vue 中的 html 添加一行额外的 html 时,我都会收到此错误。请参阅以下错误: > webpack --mode development Hash: 1e4
我的问题如下:在 chrome devtools 中调试时将鼠标悬停在变量上,这就是我得到的: 在开发工具控制台中: 有人知道为什么会这样吗?这真的很烦人,因为使调试过程更加麻烦!!!有什么解决办法吗
我有一个遗留项目,想通过 CDN 开始使用 Vue.js 单文件组件。我确实遇到了一些插件,例如 https://github.com/FranckFreiburger/vue3-sfc-loader
所以问题是我有一列“位置”,它是一个列表列表。嵌套列表的长度为 2,并且在索引 1 处都有一个点的纬度值,在索引 2 处都有一个点的经度值。因为我想从本专栏创建一个 sfc 对象,所以我考虑将每个嵌套
我处于这样一种情况,我必须在法律上将版权声明添加到我的文件顶部,同时我知道如何在 template 中发表评论。 , script或 style ,我找不到关于如何在这些之外执行此操作的文档。 根据文
我正在使用 Laravel 5.8 和 Vue 2.6,并尝试在我的单个文件组件中使用图像文件的相对路径。我已查看 How to import and use image in a Vue singl
我有两种使用我的应用程序的模式,一种是嵌入式模式,一种是非嵌入式模式。对于嵌入式(想想 iframe)模式,我不想显示站点页眉和页脚。我尝试在 App.vue 中使用 v-if 和 v-else,但
我正在尝试将上下文传递到 SFC,如 react docs 中所述,但是 typescript 对此很生气。我转载了the issue on codesandbox.io ,并在下面内联了相关信息。所
我正在做一个应用程序,我需要在 Vue JS 的单个文件组件中提取样式标记内的 CSS。 所以我有这个基本模板: export default { name: 'Hel
我有一个 react 函数,我正在传递一个对象数组作为 Prop 。当组件渲染时,该数组被嵌套到同名的对象中。 为什么要嵌套?我可以做些什么来将其强制返回数组吗? 这是代码(以及笔的链接( https
因此,您可以指定类型 React.FC到一个变量,以便将其理解为 React 无状态功能组件,如下所示: //Interface declaration interface ButtonProps {
我有一个 vue/sfc/webpack/vue-loader 应用程序,我直接在 SFC 中使用 Bootstrap (通过“导入”)和组件样式。现在,vue-loader 总是在组件样式之后包含
我是一名优秀的程序员,十分优秀!