Vue實戰-頭部模塊編寫(5)

經過上篇咱們瞭解到了vue能夠經過axios發送前端請求。css

咱們知道的在發送請求能夠在creted()鉤子內,也能夠在mounted()鉤子內。前端

本篇咱們經過頭部模塊的編寫,將請求到的數據渲染到模塊內。vue

固然咱們先要準備靜態頁面:ios

01.分析製做靜態頁面
圖片描述axios

如圖所示,咱們能夠將整個一個頭部模塊分爲4個部分:後端

· 頂部通欄:返回,搜索,拼單,等;api

· 主題內容:餐廳名字數組

· 公告:新用戶;app

· 背景圖片。異步

而後咱們依據當前這三塊內容進行佈局

<div class="header">

<div class="top-wrapper"></div>

<div class="content-wrapper"></div>

<div class="bulletin-wrapper"></div>

<div class="bg-wrapper"></div>

</div>

結構定好了,咱們須要注意:

1.寫css,添加背景圖片,等通用的須要咱們放在static下,好比初始化css文件。

2.頭部組件須要用到的圖片直接放在頭部組件的文件夾內,如之後須要更改,操做,是很方便管理的。

3.bg-wrapper用絕對定位進行背景圖片的設置。

咱們將靜態頭部模塊完成後須要爲組件傳入數據,好比商家信息,公告,主題內容,經過後端獲取。

以下,咱們在app.vue中進行數據請求

<script>

// 一、導入頭部模塊

import Myheader from 'components/Header/Header';



export default {

name: 'app',

components: { // 二、註冊

Myheader

},

data() {

return {

// header組件須要的信息(商家信息)

poiInfo: {},

               commentNum: 0,

               

}

},

created() { // 發起異步請求,獲取數據

var that = this;

// 經過axios發起get請求

this.$axios.get('/api/goods')

.then(function(response) { // 獲取到數據

var dataSource = response.data;

if(dataSource.code == 0){

that.poiInfo = dataSource.data.poi_info;

}

})

.catch(function(error) { // 出錯處理

console.log(error);

});

}

}

</script>

咱們經過axios請求到了來自後端的商家信息。

02.處理數據

1.經過props進行父子組件通訊

父組件App.vue下:

進行數據綁定。

<Myheader :poiInfo='poiInfo'></Myheader>

頭部模塊組件內經過props接收數據:

export default {

props: {

  poiInfo: {

    type: Object,

    default: ""

  }

}

};

圖片描述
完善這些後,咱們在來擴充一個功能,就是點擊活動的時候,會彈出活動詳情頁:
圖片描述

<transition name="bulletin-detail"></transition>

咱們用transition來作簡單的頁面展現動畫。

2.防止數組越界

針對於公告內容:

<div class="bulletin-wrapper">

<img class="icon" v-if="poiInfo.discounts2" :src="poiInfo.discounts2[0].icon_url" />



<span class="text" v-if="poiInfo.discounts2">{{poiInfo.discounts2[0].info}}</span>



<div class="detail" v-if="poiInfo.discounts2" @click="showBulletin">

{{poiInfo.discounts2.length}}個活動

<span class="icon-keyboard_arrow_right"></span>

</div>

</div>

使用v-if控制數據與模板的渲染否。

v-if="poiInfo.discounts2"

到這裏今天的頭部模塊編寫,以及數據的渲染就結束了,就以上提到的比較重要,可能須要詳細瞭解的知識點,都在下方羅列好了。

03.data, prop, computed, method 的區別
圖片描述

omputed的應用。

CSS拼接

04.動畫

圖片描述
https://cn.vuejs.org/v2/api/#...

定義

進入

.xxx-enter   過渡開始的狀態

.xxx-enter-to 過渡結束的狀態

.xxx-enter-active 過渡時間、延遲、曲線函數

離開

.xxx-leave 過渡開始的狀態

.xxx-leave-to 過渡結束的狀態

.xxx-leave-active 過渡時間、延遲、曲線函數

*/



.bulletin-detail-enter-active,

.bulletin-detail-leave-active {

transition: 2s all;

}

.bulletin-detail-enter,

.bulletin-detail-leave-to {

   opacity: 0;

}

.bulletin-detail-enter-to,

.bulletin-detail-leave {

   opacity: 1;

}

調用



  <transition name="bulletin-detail"></transition>

vue項目的頭部模塊編寫到此就結束了,下篇咱們對評價模塊進行設計與實踐,不見不散。

相關文章
相關標籤/搜索