面试题答案
一键面试- 在基础组件
my - component.vue
中定义插槽:
这里使用<template> <div> <slot></slot> </div> </template>
<slot>
标签定义了一个匿名插槽,它是一个占位符,用于父组件插入内容。 - 在父组件中使用基础组件并插入动态文本:
在父组件中,将<template> <div> <my - component> {{ dynamicText }} </my - component> </div> </template> <script> import myComponent from './my - component.vue'; export default { components: { myComponent }, data() { return { dynamicText: '这是来自父组件的动态文本' }; } }; </script>
dynamicText
数据属性的值插入到了<my - component>
的插槽位置。
如果要使用具名插槽,步骤如下:
- 在基础组件
my - component.vue
中定义具名插槽:<template> <div> <slot name="text - slot"></slot> </div> </template>
- 在父组件中使用基础组件并插入动态文本到具名插槽:
这里使用<template> <div> <my - component> <template v - slot:text - slot> {{ dynamicText }} </template> </my - component> </div> </template> <script> import myComponent from './my - component.vue'; export default { components: { myComponent }, data() { return { dynamicText: '这是来自父组件的动态具名插槽文本' }; } }; </script>
v - slot:text - slot
语法将内容插入到具名插槽text - slot
中。