vue之插槽02
app.vue
<template> <div> <h1>App 根组件</h1> <hr /> <!-- 使用组件 --> <my-article> <template #header> <h1>滕王阁序</h1> </template> <template #default> <p>豫章故郡,洪都新府。</p> <p>星分翼轸,地接衡庐</p> <p>襟三江而带五湖,控蛮荆而引瓯越。</p> </template> <template #footer> <p>落款:王勃</p> </template> </my-article> </div> </template> <script> // 导入组件 import MyArticle from './MyArticle.vue' export default { name: 'MyApp', components: { // 注册组件 MyArticle, }, } </script> <style lang="less" scoped></style>
MyArticle.vue
<template> <div> <!-- 我们希望把页头放到这里 --> <header> <slot name="header"></slot> </header> <!-- 我们希望把主要内容放到这里 --> <main> <slot></slot> </main> <!-- 我们希望把页脚放到这里 --> <footer> <slot name="footer"></slot> </footer> </div> </template> <script> export default { name: 'MyArticle', } </script> <style lang="less" scoped> header, main, footer { border: 1px dashed #999; margin: 30px; padding: 40px; position: relative; &::before { position: absolute; right: 5px; top: 5px; font-style: italic; } } header::before { content: 'header 页头'; } main::before { content: 'main 主体内容'; } footer::before { content: 'footer 页脚'; } </style>
浙公网安备 33010602011771号