欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue實(shí)現(xiàn)簡易購物車案例

 更新時(shí)間:2021年06月01日 11:45:15   作者:瘋狂的地球人  
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡易購物車案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Vue實(shí)現(xiàn)簡易購物車的具體代碼,供大家參考,具體內(nèi)容如下

先來看一下完成后的效果吧。

CSS 部分

這里沒什么好說的,就是v-cloak 這一個(gè)知識(shí)點(diǎn)

table{
  border: 1px solid #e9e9e9;
  border-collapse: collapse;
  border-spacing: 0;
}
th,td{
  padding: 8px 16px;
  border: 1px solid #e9e9e9;
  text-align: center;
}
th{
  background-color: #f7f7f7;
  color: #5c6b77;
  font-weight: 600;
}
[v-cloak]{
  display: none;
}

HTML部分

這里說明一些用到的一些Vue的知識(shí)點(diǎn):

  • v-if
  • v-for
  • v-cloak
  • v-on > @
  • v-bind > :
  • 方法 methods
  • 計(jì)算屬性 computed
  • 過濾器 filters
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>購物車</title>
  <link rel="stylesheet" href="style.css" >
</head>
<body>
  
  <div id="app" v-cloak>
    <div v-if="books.length">
      <table>
        <thead>
          <tr>
            <th></th>
            <th>書籍名稱</th>
            <th>出版日期</th>
            <th>價(jià)格</th>
            <th>購買數(shù)量</th>
            <th>刪除</th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="(item,index) in books">
            <th>{{item.id}}</th>
            <th>{{item.name}}</th>
            <th>{{item.date}}</th>
            <!--方案一 保留小數(shù)點(diǎn)和貨幣符號(hào)-->
            <!-- <th>{{"¥"+item.price.toFixed(2)}}</th> -->
            <!--方案二-->
            <!-- <th>{{getFinalPrice(item.price)}}</th> -->
            <!--方案三-->
            <th>{{item.price | showPrice}}</th>
            <th>
              <button @click="decrement(index)" :disabled="item.count<=0">-</button>
              {{item.count}}
              <button @click="increment(index)">+</button>
            </th>
            <th><button @click="removeHandle(index)">移除</button></th>
          </tr>
        </tbody>
      </table>
      <h2>總價(jià)格:{{totalPrice | showPrice}}</h2>
    </div>
    <h2 v-else>
      購物車為空
    </h2>
  </div>

</body>
<script src="../js/vue.js"></script>
<script src="main.js"></script>
</html>

JS部分

const app = new Vue({
  el:"#app",
  data:{
    books:[
      {
        id:1,
        name:"《算法導(dǎo)論》",
        date:'2006-9',
        price:85.00,
        count:1
      },
      {
        id:2,
        name:"《UNIX編程藝術(shù)》",
        date:'2006-2',
        price:50.00,
        count:1
      },
      {
        id:3,
        name:"《編程藝術(shù)》",
        date:'2008-10',
        price:39.00,
        count:1
      },
      {
        id:4,
        name:"《代碼大全》",
        date:'2006-3',
        price:128.00,
        count:1
      },
      
    ]
  },
  methods: {
   //這里我們放棄使用方法的形式來求總價(jià)格,轉(zhuǎn)而使用計(jì)算屬性,因?yàn)樗男矢摺?
    // getFinalPrice(price){
    //   return "¥"+price.toFixed(2)
    // },
    increment(index){
      this.books[index].count++
    },
    decrement(index){
      this.books[index].count--
    },
    removeHandle(index){
      this.books.splice(index,1);
    }

  },
  computed: {
    totalPrice(){
      // 方案一:普通的for循環(huán)
      // let totalPrice = 0;
      // for(let i=0;i<this.books.length;i++){
      //   totalPrice += this.books[i].price * this.books[i].count
      // }
      // return totalPrice

      // 方案二:for in
      // let totalPrice = 0;
      // for(let i in this.books){
      //   // console.log(i);//1 2 3 4
      //   totalPrice += this.books[i].price * this.books[i].count
      // }
      // return totalPrice

      // 方案三:for of
      // let totalPrice = 0;
      // for(let item of this.books){
      //   // console.log(item);//這里拿到的就是數(shù)組里的每個(gè)對象
      //   totalPrice += item.price * item.count
      // }
      // return totalPrice

      // 方案四:reduce
      return this.books.reduce(function (preValue, book) {
        // console.log(book);//分別輸出四個(gè)對象
        return preValue + book.price * book.count
      }, 0)
    }
  },
  // 過濾器
  filters:{
    showPrice(price){
      return "¥"+price.toFixed(2)
    }
  }
})

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于vue3和element plus實(shí)現(xiàn)甘特圖

    基于vue3和element plus實(shí)現(xiàn)甘特圖

    甘特圖是一種重要的項(xiàng)目管理工具,它可以通過圖形化的方式展示項(xiàng)目的進(jìn)度和時(shí)間表,甘特圖通常由一個(gè)橫軸和一個(gè)縱軸組成,甘特圖對于項(xiàng)目管理非常重要,所以本文給大家介紹了如何基于vue3和element plus實(shí)現(xiàn)甘特圖,需要的朋友可以參考下
    2024-06-06
  • vue-cli配置flexible過程詳解

    vue-cli配置flexible過程詳解

    這篇文章主要介紹了vue-cli配置flexible過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 詳解Vue 方法與事件處理器

    詳解Vue 方法與事件處理器

    本篇文章主要介紹了詳解Vue 方法與事件處理器 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • vue3如何監(jiān)聽頁面的滾動(dòng)

    vue3如何監(jiān)聽頁面的滾動(dòng)

    這篇文章主要給大家介紹了關(guān)于vue3如何監(jiān)聽頁面的滾動(dòng)的相關(guān)資料,在vue中實(shí)現(xiàn)滾動(dòng)監(jiān)聽和原生js無太大差異,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • vue監(jiān)聽鍵盤事件的快捷方法【推薦】

    vue監(jiān)聽鍵盤事件的快捷方法【推薦】

    這篇文章主要介紹了vue監(jiān)聽鍵盤事件的快捷方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • 在Vue中解決跨域問題的常用方式

    在Vue中解決跨域問題的常用方式

    跨域問題是由瀏覽器引起的安全限制,而不是Vue框架本身導(dǎo)致的,Vue本身并不限制跨域訪問,它只是一個(gè)前端框架,負(fù)責(zé)構(gòu)建用戶界面和處理數(shù)據(jù)邏輯,本文給大家介紹了在Vue中解決跨域問題的常用方式,需要的朋友可以參考下
    2023-10-10
  • vue項(xiàng)目打包發(fā)布上線的方法步驟

    vue項(xiàng)目打包發(fā)布上線的方法步驟

    本文主要介紹了vue項(xiàng)目打包發(fā)布上線的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 使用Element實(shí)現(xiàn)表格表頭添加搜索圖標(biāo)和功能

    使用Element實(shí)現(xiàn)表格表頭添加搜索圖標(biāo)和功能

    這篇文章主要介紹了使用Element實(shí)現(xiàn)表格表頭添加搜索圖標(biāo)和功能,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • nuxt.js框架使用小結(jié)

    nuxt.js框架使用小結(jié)

    本文主要介紹了nuxt.js框架使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • vue3使用echarts繪制折線圖的代碼示例

    vue3使用echarts繪制折線圖的代碼示例

    這篇文章主要為大家學(xué)習(xí)介紹了Vue3如何使用echarts實(shí)現(xiàn)繪制折線圖,文中有詳細(xì)的示例代碼供大家參考,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07

最新評論