import header from './components/header/header'
export default { components:{ v-header:header } }
<v-header :sell="sellerObj"></v-header>
export default { props:{ // 子组件获取 父组件 数据 sell:{ type:Object // 传递的类型 } } }
子组件在props中建立一个属性,用以接收父组件传过来的值vue
父组件中注册子组件ios
在子组件标签中添加子组件props中建立的属性axios
把须要传给子组件的值赋给该属性数组
<div class="logo"> <img :src="sell.avatar" alt="" width='64' height='64'/> </div> <span class="name">{{sell.name}}</span> <div class="description"> {{sell.description + '/' + sell.deliveryTime + '分钟送达'}} </div>
细节问题:app
data (){ return { detailShow:false } }
<div v-if="detailShow" class="detail"></div>
<div class="bulletin-wrapper" @click="showDetails()" ></div> <div class="detail-close" v-if="sell.supports"> <i class="icon-close" @click="hideDetail()"></i> </div>
methods:{ showDetails () { this.detailShow=true }, hideDetail () { this.detailShow=false } }
// 利用 computed 属性 <div class="star" :class="starSizeType"></div>
computed: { starSizeType() { // 返回 星级的大小类型 48/36/24 return 'star-' + this.size; } }
<span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span>
// 类名用变量存起来 const LENGTH = 5 // 星星长度 const CLS_ON = 'on' // 全星 const CLS_HALF = 'half' // 半星 const CLS_OFF = 'off'// 空星
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<intNum;i++){ // 遍历全星的span spanClassList.push(CLS_ON) } if(HashalfNum){ // 若是有半星 加类名 spanClassList.push(CLS_HALF) } while(spanClassList.length<LENGTH){// 判断 是否有空星 及个数 spanClassList.push(CLS_OFF) } return spanClassList; } }
<div class="star" :class="starSizeType"> <span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span> </div>