Vue header组件开发详解

网友投稿 454 2023-02-25


Vue header组件开发详解

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

1. App.vue 引入组件

import header from './components/header/header'

2. App.vue 中注册组件

export default {

componehttp://nts:{

v-header:header

}

}

3. 使用组件

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

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

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

export default {

props:{ // 子组件获取 父组件 数据

sell:{

type:Object // 传递的类型

}

}

}

小结:

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

父组件中注册子组件

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

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

5. 调用数据

{{sell.name}}

{{sell.description + '/' + sell.deliveryTime + '分钟送达'}}

细节问题:

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

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

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

1.弹出遮罩层

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

data (){

return {

detailShow:false

}

}

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

methods:{

showDetails () {

this.detailShow=true

},

hideDetail () {

this.detailShow=false

}

}

2. 星级评分

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

// 利用 computed 属性

computed: {

starSizeType() { // 返回 星级的大小类型 48/36/24

return 'star-' + this.size;

}

}

(2) 遍历星星的数量

复制代码 代码如下:

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

// 类名用变量存起来

const LENGTH = 5 // 星星长度

const CLS_ON = 'on' // 全星

const CLS_HALF = 'half' // 半星

const CLS_OFF = 'off'// 空星

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

itemClasses () { // 返回一个数组为每个span 的类名 (遍历)

let spanClassList=[];

// 利用 实参评分来判断 有几颗全星,半星,空星

let scores=( Math.floor(this.score * 2) ) / 2

let intNum= Math.floor(scores); // 全星个数

let HashalfNum= scores % 1 !== 0 // 半星

for(var i=0;i

spanClassList.push(CLS_ON)

}

if(HashalfNum){ // 如果有半星 加类名

spanClassList.push(CLS_HALF)

}

while(spanClassList.length

spanClassList.push(CLS_OFF)

}

return spanClassList;

}

}

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

spanClassList.push(CLS_ON)

}

if(HashalfNum){ // 如果有半星 加类名

spanClassList.push(CLS_HALF)

}

while(spanClassList.length

spanClassList.push(CLS_OFF)

}

return spanClassList;

}

}

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

spanClassList.push(CLS_OFF)

}

return spanClassList;

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Cloud Netflix架构浅析(小结)
下一篇:从零开始最小实现react服务器渲染详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~