header是什么元件(header组件怎么用)

发布时间:2025-12-10 23:03:13 浏览次数:1

一、 header 组件开发 之数据的传递

1. App.vue 引入组件

importheaderfrom'./components/header/header'

2. App.vue 中注册组件

exportdefault{components:{v-header:header}}

3. 使用组件

<v-header:sell="sellerObj"></v-header>

解释::sell="sellerObj",这里就像一个函数传参一样把sell当成形参,sellerObj就是实参,那么父组件实参是怎么传给子组件的,通过什么传

4. 父组件向子组件传递数据

在父组件中需要将sellerObj作为数据导出,子组件通过props从父组件中获得数据,且要指定数据类型

exportdefault{props:{//子组件获取父组件数据sell:{type:Object//传递的类型}}}

小结:

  1. 子组件在props中创建一个属性,用以接收父组件传过来的值

  2. 父组件中注册子组件

  3. 在子组件标签中添加子组件props中创建的属性

  4. 把需要传给子组件的值赋给该属性

5. 调用数据

<pclass="logo"><img:src="sell.avatar"alt=""width='64'height='64'/></p><spanclass="name">{{sell.name}}</span><pclass="description">{{sell.description+'/'+sell.deliveryTime+'分钟送达'}}</p>

细节问题:

support 绑定数据时 加 v-if ='sell.supports'

理由 : 在我们通过axios获取数据前在父组件中创建了一个空的对象sellerObj 先传给子组件,开始 没有数据传送过去就会报错 underfined,加上 v-if ,接受不到数据就不会解析,也就不会报错。

二、 header 组件弹出层(详情)

1.弹出遮罩层

(1) 设置一个状态,判断该状态控制显示隐藏

data(){return{detailShow:false}}
<pv-if="detailShow"class="detail"></p>

(2) 绑定点击事件,通过methods 方法改变 状态,控制显隐效果

<pclass="bulletin-wrapper"@click="showDetails()"></p><pclass="detail-close"v-if="sell.supports"><iclass="icon-close"@click="hideDetail()"></i></p>
methods:{showDetails(){this.detailShow=true},hideDetail(){this.detailShow=false}}

2. 星级评分

(1) 绑定class 控制星级大小的类型

//利用computed属性<pclass="star":class="starSizeType"></p>
computed:{starSizeType(){//返回星级的大小类型48/36/24return'star-'+this.size;}}

(2) 遍历星星的数量

复制代码 代码如下:


<span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span>

(3) 定义常量 控制 每个星的状态

//类名用变量存起来constLENGTH=5//星星长度constCLS_ON='on'//全星constCLS_HALF='half'//半星constCLS_OFF='off'//空星

(4) 通过计算 判断每个span 的类型

itemClasses(){//返回一个数组为每个span的类名(遍历)letspanClassList=[];//利用实参评分来判断有几颗全星,半星,空星letscores=(Math.floor(this.score*2))/2letintNum=Math.floor(scores);//全星个数letHashalfNum=scores%1!==0//半星for(vari=0;i<intNum;i++){//遍历全星的spanspanClassList.push(CLS_ON)}if(HashalfNum){//如果有半星加类名spanClassList.push(CLS_HALF)}while(spanClassList.length<LENGTH){//判断是否有空星及个数spanClassList.push(CLS_OFF)}returnspanClassList;}}

(5) 通过 动态绑定class 来 给span 加类名

<pclass="star":class="starSizeType"><spanv-for="itemClassinitemClasses":class="itemClass"class="star-item"track-by="$index"></span></p>
header是什么元件
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477