Cet article vous présente principalement l'explication détaillée du développement des composants d'en-tête Vue et vous donne une référence. J'espère que vous aurez une compréhension plus approfondie du développement des composants Vue.
1. Transmission de données pour le développement des composants d'en-tête
1. App.vue introduit les composants
import header from './components/header/header'
export default { components:{ v-header:header } }
<🎜. >
<v-header :sell="sellerObj"></v-header>
4. Le composant parent transmet les données au composant enfant
Dans le composant parent, sellerObj doit être exporté en tant que données, et le composant enfant obtient les données du composant parent via props, et le type de données doit être spécifié
export default { props:{ // 子组件获取 父组件 数据 sell:{ type:Object // 传递的类型 } } }
support Ajouter v-if ='sell.supports' lors de la liaison des données
<p class="logo"> <img :src="sell.avatar" alt="" width='64' height='64'/> </p> <span class="name">{{sell.name}}</span> <p class="description"> {{sell.description + '/' + sell.deliveryTime + '分钟送达'}} </p>
2. Couche contextuelle du composant d'en-tête (détails)
1. ) Définir un statut, déterminer le statut pour contrôler l'affichage et masquer
(2) Événement de clic de liaison, changer via les méthodes méthode Statut, contrôler les effets visibles et invisibles
data (){ return { detailShow:false } }
<p v-if="detailShow" class="detail"></p>
2. 🎜>
<p class="bulletin-wrapper" @click="showDetails()" ></p> <p class="detail-close" v-if="sell.supports"> <i class="icon-close" @click="hideDetail()"></i> </p>
methods:{ showDetails () { this.detailShow=true }, hideDetail () { this.detailShow=false } }
(2) Traverser les étoiles La quantité
// 利用 computed 属性 <p class="star" :class="starSizeType"></p>
computed: { starSizeType() { // 返回 星级的大小类型 48/36/24 return 'star-' + this.size; } }
(4) Déterminer le type de chaque travée par calcul
(5) Ajouter un nom de classe à l'étendue en liant dynamiquement la classe
// 类名用变量存起来 const LENGTH = 5 // 星星长度 const CLS_ON = 'on' // 全星 const CLS_HALF = 'half' // 半星 const CLS_OFF = 'off'// 空星
Recommandations associées :
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; } }
<p class="star" :class="starSizeType"> <span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span> </p>
Résumé de l'utilisation de l'en-tête php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!