<template #default=“scope”>占位符什么时候适用
时间: 2024-09-14 19:16:22 浏览: 39
`<template #default="props">` 是Vue模板中的一个特性,它用于定义默认插槽(default slot),当组件内部没有其他特定名称的插槽匹配时,这些内容会被填充到该位置。`#default` 表示这是一个特殊的占位符,其中 `props` 参数允许接收外部传递给组件的属性。
当你想在组件中有一个通用的位置,可以接受任何内容但又希望对传入的内容进行一些预处理或绑定,比如动态渲染文本,这时就可以使用 `<template #default>`。例如:
```html
<!-- 使用 default slot -->
<my-component>
<template #default="scope">
<h1>{{ scope.text }}</h1>
</template>
</my-component>
<script setup>
export default {
props: {
text: String,
},
};
</script>
```
在这个例子中,`<my-component>` 组件会接收名为 `text` 的 prop,然后通过 `<template #default>` 渲染 `{{ props.text }}`,从而显示传入的文本。
如果原代码中有命名插槽,如 `name="header"`,你可以使用 `v-slot` 和参数来替换,就像这样:
```vue
<!-- 原有命名插槽 -->
<template v-slot:header="{ text }">
<h2>{{ text }}</h2>
</template>
<!-- 更改为 v-slot并带参数 -->
<template v-slot:text="props">
<h2>{{ props.text }}</h2>
</template>
```
在这里,`v-slot:text` 指定插槽的作用域,并且 `props` 对象包含了传入的 `text` 属性。
阅读全文