Vue插槽的代码以及总结

发布时间:2024年01月18日

//? template:中写slot标签里面就是对应会被替换的内容,name属性值表示它的命名,后面的属性有点像父传子的写法,它可以将name后面的属性以及属性值存在上面template标签?#subtitle="scope",这个scope里面,相当于一个对象了,scope自己命名

//上面的template标签里面嵌套的内容就是新的内容了

<!DOCTYPE html>
<html lang="en">
<head>
? <meta charset="UTF-8">
? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? <title>Document</title>
</head>
<body>
? <div id="app">
? ? App

? ? <todo-header>
? ? ? <template #default>
? ? ? ? <span><a href="#">子标题链接</a></span>
? ? ? </template>

? ? ? <template v-slot:title="scope">
? ? ? ? <span>{{ scope }}</span>
? ? ? ? <h3>{{ scope.title }}</h3>
? ? ? </template>

? ? ? <template #subtitle="scope">
? ? ? ? {{ scope.subtitle }}
? ? ? ? <h4>今日事, 今日毕!!!</h4>
? ? ? </template>
? ? </todo-header>
? </div>

? <script src="./lib/vue.global.js"></script>
? <script>
? ? const todoHeader = {
? ? ? template: `
? ? ? ? <div class="header">
? ? ? ? ? <slot name="title" title="待办事项列表" username="admin" password="123456">
? ? ? ? ? ? <div class="title">待办事项列表</div>
? ? ? ? ? </slot>
? ? ? ? ? <slot name="subtitle" subtitle="ToDoList...">
? ? ? ? ? ? <div class="subtitle">ToDoList...</div>
? ? ? ? ? </slot>
? ? ? ? ??
?? ??? ? ?<slot>
? ? ? ? ? ? <div>子标题的链接地址</div>
? ? ? ? ? </slot>
? ? ? ? </div>
? ? ? `,
? ? }

? ? const app = Vue.createApp({})
? ? app.component('todo-header', todoHeader)
? ? app.mount('#app')
? </script>
</body>
</html>

文章来源:https://blog.csdn.net/qq_52840130/article/details/135683478
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。