91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中如何使用header組件

發布時間:2021-07-21 14:37:06 來源:億速云 閱讀:733 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關Vue中如何使用header組件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、 header 組件開發 之數據的傳遞

1. App.vue 引入組件

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

2. App.vue 中注冊組件

 export default {
   components:{
     v-header:header
   }
 }

3. 使用組件

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

解釋::sell="sellerObj",這里就像一個函數傳參一樣把sell當成形參,sellerObj就是實參,那么父組件實參是怎么傳給子組件的,通過什么傳

4. 父組件向子組件傳遞數據

在父組件中需要將sellerObj作為數據導出,子組件通過props從父組件中獲得數據,且要指定數據類型

export default {
 props:{ // 子組件獲取 父組件 數據
 sell:{
  type:Object // 傳遞的類型 
 }
 }
 }

小結:

  1. 子組件在props中創建一個屬性,用以接收父組件傳過來的值

  2. 父組件中注冊子組件

  3. 在子組件標簽中添加子組件props中創建的屬性

  4. 把需要傳給子組件的值賦給該屬性

5. 調用數據

<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>

細節問題:

support 綁定數據時 加 v-if ='sell.supports'

理由 : 在我們通過axios獲取數據前在父組件中創建了一個空的對象sellerObj 先傳給子組件,開始 沒有數據傳送過去就會報錯 underfined,加上 v-if ,接受不到數據就不會解析,也就不會報錯。

二、 header 組件彈出層(詳情)

1.彈出遮罩層

(1) 設置一個狀態,判斷該狀態控制顯示隱藏

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

(2) 綁定點擊事件,通過methods 方法改變 狀態,控制顯隱效果

<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
 }
}

2. 星級評分

(1) 綁定class 控制星級大小的類型

// 利用 computed 屬性
<div class="star" :class="starSizeType"></div>
computed: {
 starSizeType() { // 返回 星級的大小類型 48/36/24
  return 'star-' + this.size;
 }
}

(2) 遍歷星星的數量

復制代碼 代碼如下:


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

(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<intNum;i++){ // 遍歷全星的span
 spanClassList.push(CLS_ON)
 }
 if(HashalfNum){ // 如果有半星 加類名
 spanClassList.push(CLS_HALF)
 }
 while(spanClassList.length<LENGTH){// 判斷 是否有空星 及個數
 spanClassList.push(CLS_OFF)
 }
  return spanClassList;   
 }
}

(5) 通過 動態綁定class 來 給span 加類名

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

上述就是小編為大家分享的Vue中如何使用header組件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南召县| 津南区| 高邑县| 柳江县| 土默特右旗| 甘泉县| 开阳县| 澄迈县| 余干县| 怀远县| 湘潭市| 和硕县| 铁岭县| 澄迈县| 张家口市| 陆河县| 双辽市| 理塘县| 绥滨县| 阳春市| 丹棱县| 如皋市| 宿迁市| 湘乡市| 秭归县| 萍乡市| 建德市| 棋牌| 宁陵县| 沈丘县| 土默特左旗| 莲花县| 乐平市| 石嘴山市| 凤翔县| 邵武市| 盱眙县| 皋兰县| 南溪县| 巴彦淖尔市| 青铜峡市|