HMVue6.2【插槽】
1 初始项目
同HMVue6.1
npm install 或者 npm i 也行
npm audit fix
2 什么是插槽
3 插槽的基础用法
3 v-slot指令(简写#)
4 插槽的后备内容
5 具名插槽
5-1 课件
5-2 vant库插槽例子
具名插槽:自定义名字的插槽
匿名插槽:不带自定义名字,默认名字为default,或者自定义为default
Vant - 轻量、可靠的移动端组件库 (youzan.github.io)
5-3 具名插槽基本使用-例子
6 作用域插槽
6-1 课件
6-2 作用域插槽的基本使用
6-3 作用域插槽的解构赋值(解构插槽Prop)
7 源码
<template> <div class="app-container"> <h1>App 根组件h1> <hr> <Article> <template v-slot:title> <h3>《赋得古原草送别》h3> template> <template #content="{msg,user}"> <div> <p>{{msg}}p> <p>{{user.name}}p> div> template> <template #author> <div>白居易div> template> Article> <hr> <div class="box" style="display: none;"> <Left> <template #default> <p>这是在 Left 组件的内容区域,声明的 p 标签p> template> Left> div> div> template> <script> import Left from '@/components/Left.vue' import Article from '@/components/Article.vue' export default { name: 'MySlotApp', components: { Left, Article } } script> <style lang="less"> .app-container { padding: 1px 20px 20px; background-color: #efefef; } .box { display: flex; } style>
<template> <div class="left-container"> <h3>Left 组件h3> <hr> <slot name="default"> <p>这是default插槽的默认内容p> slot> div> template> <script> export default {} script> <style lang="less"> .left-container { padding: 0 20px 20px; background-color: orange; min-height: 250px; flex: 1; } style>
<template> <div class="article-container"> <div class="header-box"> <slot name="title">slot> div> <div class="content-box"> <slot name="content" msg="hello vue" :user="userinfo">slot> div> <div class="footer-box"> <slot name="author">slot> div> div> template> <script> export default { name: 'Article', data(){ return{ userinfo: { name: 'zs', age: 18 } } } } script> <style lang="less" scoped> .article-container { > div { min-height: 150px; } .header-box { background-color: pink; } .content-box { background-color: lightblue; } .footer-box { background-color: lightsalmon; } } style>