一、 header 組件開發 之數據的傳遞
1. App.vue 引入組件
importheaderfrom'./components/header/header'
2. App.vue 中注冊組件
exportdefault{components:{v-header:header}}
3. 使用組件
<v-header:sell="sellerObj"></v-header>
解釋::sell="sellerObj",這里就像一個函數傳參一樣把sell當成形參,sellerObj就是實參,那么父組件實參是怎么傳給子組件的,通過什么傳
4. 父組件向子組件傳遞數據
在父組件中需要將sellerObj作為數據導出,子組件通過props從父組件中獲得數據,且要指定數據類型
exportdefault{props:{//子組件獲取父組件數據sell:{type:Object//傳遞的類型}}}
小結:
子組件在props中創建一個屬性,用以接收父組件傳過來的值
父組件中注冊子組件
在子組件標簽中添加子組件props中創建的屬性
把需要傳給子組件的值賦給該屬性
5. 調用數據
<pclass="logo"><img:src="sell.avatar"alt=""width='64'height='64'/></p><spanclass="name">{{sell.name}}</span><pclass="description">{{sell.description+'/'+sell.deliveryTime+'分鐘送達'}}</p>
細節問題:
support 綁定數據時 加 v-if ='sell.supports'
理由 : 在我們通過axios獲取數據前在父組件中創建了一個空的對象sellerObj 先傳給子組件,開始 沒有數據傳送過去就會報錯 underfined,加上 v-if ,接受不到數據就不會解析,也就不會報錯。
二、 header 組件彈出層(詳情)
1.彈出遮罩層
(1) 設置一個狀態,判斷該狀態控制顯示隱藏
data(){return{detailShow:false}}
<pv-if="detailShow"class="detail"></p>
(2) 綁定點擊事件,通過methods 方法改變 狀態,控制顯隱效果
<pclass="bulletin-wrapper"@click="showDetails()"></p><pclass="detail-close"v-if="sell.supports"><iclass="icon-close"@click="hideDetail()"></i></p>
methods:{showDetails(){this.detailShow=true},hideDetail(){this.detailShow=false}}
2. 星級評分
(1) 綁定class 控制星級大小的類型
//利用computed屬性<pclass="star":class="starSizeType"></p>
computed:{starSizeType(){//返回星級的大小類型48/36/24return'star-'+this.size;}}
(2) 遍歷星星的數量
復制代碼 代碼如下:
<span v-for="itemClass in itemClasses" :class="itemClass" class="star-item" track-by="$index"></span>
(3) 定義常量 控制 每個星的狀態
//類名用變量存起來constLENGTH=5//星星長度constCLS_ON='on'//全星constCLS_HALF='half'//半星constCLS_OFF='off'//空星
(4) 通過計算 判斷每個span 的類型
itemClasses(){//返回一個數組為每個span的類名(遍歷)letspanClassList=[];//利用實參評分來判斷有幾顆全星,半星,空星letscores=(Math.floor(this.score*2))/2letintNum=Math.floor(scores);//全星個數letHashalfNum=scores%1!==0//半星for(vari=0;i<intNum;i++){//遍歷全星的spanspanClassList.push(CLS_ON)}if(HashalfNum){//如果有半星加類名spanClassList.push(CLS_HALF)}while(spanClassList.length<LENGTH){//判斷是否有空星及個數spanClassList.push(CLS_OFF)}returnspanClassList;}}
(5) 通過 動態綁定class 來 給span 加類名
<pclass="star":class="starSizeType"><spanv-for="itemClassinitemClasses":class="itemClass"class="star-item"track-by="$index"></span></p>
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
什么是保理公司?保理公司是指賣方將貨物出售給買方,賣方可以將貿易過程中銷售或合同產生的應收賬款轉讓給保理公司,然后保理公司提前提供現金流給賣方用于采購和生產,以避免企業在恢復期的資金周轉問題。隨著市場的發展,賒銷在交易中越來越普遍,奠定了良好的市場基礎。例如:a公司與b公司簽訂了合同,所以a公司向b公司提供了商品或服務,理論上,b公司應該向a公司付款嗎?但是,當A公司完成了服務和產品,B公司沒有付...
什么是二八理論?“二八定律”又名80/20定律、帕累托法則(定律)也叫巴萊特定律、最省力的法則、不平衡原則等,被廣泛應用于社會學及企業管理學等。是19世紀末20世紀初意大利經濟學家巴萊多發現的,80/20分析法檢驗兩組類似數據之間的關系,并用來改變它們所描述的關系。第一個主要用途是去發現該關系的關鍵起因—20%的投入就有80%的產出,并在取得最佳業績的同時減少資...
美國最新CPI數據顯示,2021年11月CPI同比大漲6.8%,創1982年6月(39年)以來的最高水平??鄢称泛湍茉吹暮诵腃PI同比上漲4.9%,漲幅比10月的4.6%還要大,這也是1991年以來的最高漲幅。上月11日,美國CPI剛剛創下31年最高水平。機構認為:CPI同比讀數再度走高,創近40年來新高,但并未超海外市場預期。11月CPI同比繼續攀升至6.8%,是1982年6月以來的新高。但是...