這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Vue中如何使用header組件,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供沙灣企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為沙灣眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。一、 header 組件開發(fā) 之?dāng)?shù)據(jù)的傳遞
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",這里就像一個函數(shù)傳參一樣把sell當(dāng)成形參,sellerObj就是實參,那么父組件實參是怎么傳給子組件的,通過什么傳
4. 父組件向子組件傳遞數(shù)據(jù)
在父組件中需要將sellerObj作為數(shù)據(jù)導(dǎo)出,子組件通過props從父組件中獲得數(shù)據(jù),且要指定數(shù)據(jù)類型
export default { props:{ // 子組件獲取 父組件 數(shù)據(jù) sell:{ type:Object // 傳遞的類型 } } }
小結(jié):
子組件在props中創(chuàng)建一個屬性,用以接收父組件傳過來的值
父組件中注冊子組件
在子組件標(biāo)簽中添加子組件props中創(chuàng)建的屬性
把需要傳給子組件的值賦給該屬性
5. 調(diào)用數(shù)據(jù)
<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>
細(xì)節(jié)問題:
support 綁定數(shù)據(jù)時 加 v-if ='sell.supports'
理由 : 在我們通過axios獲取數(shù)據(jù)前在父組件中創(chuàng)建了一個空的對象sellerObj 先傳給子組件,開始 沒有數(shù)據(jù)傳送過去就會報錯 underfined,加上 v-if ,接受不到數(shù)據(jù)就不會解析,也就不會報錯。
二、 header 組件彈出層(詳情)
1.彈出遮罩層
(1) 設(shè)置一個狀態(tài),判斷該狀態(tài)控制顯示隱藏
data (){ return { detailShow:false } }
<div v-if="detailShow" class="detail"></div>
(2) 綁定點擊事件,通過methods 方法改變 狀態(tài),控制顯隱效果
<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) 遍歷星星的數(shù)量
復(fù)制代碼 代碼如下:
<span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span>
(3) 定義常量 控制 每個星的狀態(tài)
// 類名用變量存起來 const LENGTH = 5 // 星星長度 const CLS_ON = 'on' // 全星 const CLS_HALF = 'half' // 半星 const CLS_OFF = 'off'// 空星
(4) 通過計算 判斷每個span 的類型
itemClasses () { // 返回一個數(shù)組為每個span 的類名 (遍歷) let spanClassList=[]; // 利用 實參評分來判斷 有幾顆全星,半星,空星 let scores=( Math.floor(this.score * 2) ) / 2 let intNum= Math.floor(scores); // 全星個數(shù) 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){// 判斷 是否有空星 及個數(shù) spanClassList.push(CLS_OFF) } return spanClassList; } }
(5) 通過 動態(tài)綁定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組件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站名稱:Vue中如何使用header組件-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article10/ccehdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、軟件開發(fā)、標(biāo)簽優(yōu)化、Google、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)