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

溫馨提示×

溫馨提示×

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

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

VUE搭建手機商城心得和遇到的坑

發布時間:2020-08-22 15:17:25 來源:腳本之家 閱讀:385 作者:MrXu_ 欄目:web開發

從github上看了一下第一次提交時間是2018年10月22號。到現在將近4個月時間,總算是一點一滴的自己一個人完成了這個使用vue做的商城項目。以前看到別人做的這種項目就很羨慕,想著自己也做一個,曾經的憧憬如今總算實現了。一路做過來踩了不少坑,這篇文章就是分享我遇到的這些坑,希望前人爬坑,后人避免。

項目訪問地址xuyuechao.top

vue單頁模式需要注意的坑

1.class樣式沖突問題

由于是單頁面應用。你在每個組件里面寫入的樣式最終都會作用到全局里面去,導致樣式沖突問題。而每個組件都必須提供一個包裹性質的元素,建議這個元素設置一個單獨的class用于包裹里面的其他class從而避免樣式沖突

2.靜態資源倆種處理方式需要理解到位

這個在Vue官方文檔上有詳細的說明,但是我一開始沒有理解到位。走了一些個彎路。這里對Vue官方的內容提煉一個重點:
1.public中的內容必須用絕對路徑引入也就是以'/'開頭。否則將會被認為是一個模塊引用會被webpack處理。注意:項目如果不是放在根域名下需要如下處理:

<template>
  <img src=`${publicPath}MrXu.jpg`>
</template>
<script>
export default {
  data() {
    return {
      publicPath: process.env.BASE_URL
    }
  }  
}
</script>

2.采用相對路徑引入,方式多樣,如:

1.<img src='@/MrXu.jpg'>
2.<img src='~MrXu.jpg'>
3.<img src='./MrXu.jpg'>

第一種方式用到的@代表的是別名的值

第二種方式用到的~其后的任何內容都會作為模塊請求被解析。官方說可以引用Node模塊中的資源,這個我還沒用過。等以后用過了有更深的見解會再來補充

第三種方式就是標準的相對路徑引入方式

注意千萬不要用下面這種相對路徑引入方式,因為他不會被webpack處理。而是直接采用的相對路徑尋找文件。而當下的目錄是會被處理的。這種方式一用一個錯

<img src='MrXu.jpg'>

我的建議是盡可能采用相對路徑引入。減少@的使用。因為我經過測試發現css和js文件是不支持@的使用的。

項目中對vue屬性的巧妙運用

1.使用computed監聽購物車內容的修改

購物車算是整個項目中比較復雜的地方之一了,刪除,添加,選中,取消選中。這些個操作都會對總金額的計算產生影響,所以我用computed監聽這些變化完成了總金額的計算以及全選按鈕的變化

computed: {
  totalPrice() {
   var total = 0;
   this.shops.map(value => {
    if (value.check) total += value.num * value.price;
   });
   return total;
  },
  isAllCheck() {
   var newLength = this.shops.filter(value => {
    return value.check;
   }).length;

   return newLength === this.shops.length ? true : false;
  }
 }

2.使用filter完成了對訂單狀態的顯示

項目中訂單的狀態多大7種,剛開始在html里面使用了三目運算符做的判斷顯示,顯示效果極差,而且維護困難。但是采用filter不僅漂亮的多,后期的維護以及擴展都一幕了然

filters: {
  statusToText(value) {
   let reValue;
   switch (value) {
    case 1:
     reValue = "代付款";
     break;
    case 2:
     reValue = "代發貨";
     break;
    case 3:
     reValue = "待收貨";
     break;
    case 4:
     reValue = "已完成";
     break;
    case 5:
     reValue = "已取消";
     break;
    case 6:
     reValue = "售后處理";
     break;
   }
   return reValue;
  }
 }

感言

做完這個項目收獲真的蠻頗多的,像route的母子路由,路由懶加載,別名設置,路由攔截,vuex中actions,mutations,state的區別,vue的生命周期,父子組件傳值,watch,computed等等。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

利川市| 康定县| 长白| 东平县| 陇南市| 涟水县| 五指山市| 高尔夫| 喀什市| 正安县| 海南省| 大埔县| 湖州市| 密云县| 东乡| 罗甸县| 长垣县| 河西区| 蒙阴县| 永寿县| 台安县| 陆川县| 丰台区| 溧阳市| 丰顺县| 长宁县| 三原县| 耿马| 苗栗县| 南汇区| 休宁县| 宝清县| 萝北县| 沁源县| 津南区| 合阳县| 泉州市| 方正县| 施甸县| 苍山县| 丰原市|