vue外卖四:抽取公共组件TopHeader——slot的使用、父传子值
一、抽取公共组件TopHeader.vue
1.从Msite.vue抽取头部标题到src/components/TopHeader/TopHeader.vue
知识点1. 子组件接收父组件传值
- 模板内留下接收位置:
<!--1.接收父组件传值,名为title-->
<span class="header_title_text ellipsis">{{title}}</span>
- script设置接收值的类型,注意首字母大写
//2.接收父组件传的值为title,类型为String
props:{
title:String
}
知识点2.留下插槽位置
<!--3.插槽1,name:left-->
<slot name="left"></slot>
<!--4.插槽2,name:right-->
<slot name="right"></slot>
TopHeader.vue完整代码
<!--首页头部-->
<template>
<header class="header">
<!--3.插槽1,name:left-->
<slot name="left"></slot>
<span class="header_title">
<!--1.接收父组件传值,名为title-->
<span class="header_title_text ellipsis">{{title}}</span>
</span>
<!--4.插槽2,name:right-->
<slot name="right"></slot>
</header>
</template>
<script>
export default {
//2.接收父组件传的值为title,类型为String
props:{
title:String
}
}
</script>
<style lang="stylus">
.header
background-color #02a774
position fixed
z-index 100
left 0
top 0
width 100%
height 45px
.header_search
position absolute
left 15px
top 50%
transform translateY(-50%)
width 10%
height 50%
.icon-sousuo
font-size 25px
color #fff
.header_title
position absolute
top 50%
left 50%
transform translate(-50%, -50%)
width 50%
color #fff
text-align center
.header_title_text
font-size 20px
color #fff
display block
.header_login
font-size 14px
color #fff
position absolute
right 15px
top 50%
transform translateY(-50%)
.header_login_text
color #fff
</style>
二.使用公共组件:父传子值,使用插槽
1.msite.vue使用插槽,向子传值
1)引入子组件,并挂载
<script>
import TopHeader from '../../components/TopHeader/TopHeader.vue'
export default{
components:{
TopHeader,
}
}
</script>
2)使用子组件,并传值,使用插槽
1.把原header删除,改为如下,重点:0-2
<!--首页头部-->
<!--0.用title向子组件传值-->
<TopHeader title='首页-昌平区北七家宏福科技园(337省道北)'>
<!--1.使用插槽:左-->
<span class="header_search" slot='left'>
<i class="iconfont icon-sousuo"></i>
</span>
<!--2.使用插槽:右-->
<span class="header_login" slot='right'>
<span class="header_login_text">登录|注册</span>
</span>
</TopHeader>
2.search.vue使用topHeader
<template>
<section class="search">
<!-- 头部标题组件 -->
<TopHeader title="搜索"/>
略过...
</template>
<script>
import TopHeader from '../../components/TopHeader/TopHeader.vue'
export default{
components:{
TopHeader,
}
}
</script>
注意:style内header相关样式别忘记删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2019-11-07 六、React 键盘事件 表单事件 事件对象以及React中的ref获取dom节点 、React实现类似Vue的双向数据绑定
2018-11-07 输入人民币/美元后自动判断,输出转换后相对应的值