最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

在Vue中通過header組件如何開發(fā)(詳細(xì)教程)

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:38:59
文檔

在Vue中通過header組件如何開發(fā)(詳細(xì)教程)

在Vue中通過header組件如何開發(fā)(詳細(xì)教程):本篇文章主要介紹了Vue header組件開發(fā)詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。一、 header 組件開發(fā) 之?dāng)?shù)據(jù)的傳遞1. App.vue 引入組件import header from './components/header/header'2. App.vue 中注冊組件 expo
推薦度:
導(dǎo)讀在Vue中通過header組件如何開發(fā)(詳細(xì)教程):本篇文章主要介紹了Vue header組件開發(fā)詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。一、 header 組件開發(fā) 之?dāng)?shù)據(jù)的傳遞1. App.vue 引入組件import header from './components/header/header'2. App.vue 中注冊組件 expo

本篇文章主要介紹了Vue header組件開發(fā)詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。

一、 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",這里就像一個(gè)函數(shù)傳參一樣把sell當(dāng)成形參,sellerObj就是實(shí)參,那么父組件實(shí)參是怎么傳給子組件的,通過什么傳

4. 父組件向子組件傳遞數(shù)據(jù)

在父組件中需要將sellerObj作為數(shù)據(jù)導(dǎo)出,子組件通過props從父組件中獲得數(shù)據(jù),且要指定數(shù)據(jù)類型

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

小結(jié):

  1. 子組件在props中創(chuàng)建一個(gè)屬性,用以接收父組件傳過來的值

  2. 父組件中注冊子組件

  3. 在子組件標(biāo)簽中添加子組件props中創(chuàng)建的屬性

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

5. 調(diào)用數(shù)據(jù)

<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 + '分鐘送達(dá)'}}
</p>

細(xì)節(jié)問題:

support 綁定數(shù)據(jù)時(shí) 加 v-if ='sell.supports'

理由 : 在我們通過axios獲取數(shù)據(jù)前在父組件中創(chuàng)建了一個(gè)空的對象sellerObj 先傳給子組件,開始 沒有數(shù)據(jù)傳送過去就會(huì)報(bào)錯(cuò) underfined,加上 v-if ,接受不到數(shù)據(jù)就不會(huì)解析,也就不會(huì)報(bào)錯(cuò)。

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

1.彈出遮罩層

(1) 設(shè)置一個(gè)狀態(tài),判斷該狀態(tài)控制顯示隱藏

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

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

<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. 星級評分

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

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

(2) 遍歷星星的數(shù)量

代碼如下:


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

(3) 定義常量 控制 每個(gè)星的狀態(tài)

// 類名用變量存起來
const LENGTH = 5 // 星星長度
const CLS_ON = 'on' // 全星
const CLS_HALF = 'half' // 半星
const CLS_OFF = 'off'// 空星

(4) 通過計(jì)算 判斷每個(gè)span 的類型

itemClasses () { // 返回一個(gè)數(shù)組為每個(gè)span 的類名 (遍歷)
 let spanClassList=[];
 // 利用 實(shí)參評分來判斷 有幾顆全星,半星,空星
 let scores=( Math.floor(this.score * 2) ) / 2 
 let intNum= Math.floor(scores); // 全星個(gè)數(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){// 判斷 是否有空星 及個(gè)數(shù)
 spanClassList.push(CLS_OFF)
 }
 return spanClassList; 
 }
}

(5) 通過 動(dòng)態(tài)綁定class 來 給span 加類名

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

上面是我整理給大家的,希望今后會(huì)對大家有幫助。

相關(guān)文章:

react項(xiàng)目開發(fā)

使用vue實(shí)現(xiàn)二級路由設(shè)置方法

使用mint-ui實(shí)現(xiàn)省市區(qū)三級聯(lián)動(dòng)效果

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

在Vue中通過header組件如何開發(fā)(詳細(xì)教程)

在Vue中通過header組件如何開發(fā)(詳細(xì)教程):本篇文章主要介紹了Vue header組件開發(fā)詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。一、 header 組件開發(fā) 之?dāng)?shù)據(jù)的傳遞1. App.vue 引入組件import header from './components/header/header'2. App.vue 中注冊組件 expo
推薦度:
標(biāo)簽: 步驟 VUE 教程
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top