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

vue實現(xiàn)靜態(tài)頁面點贊和取消點贊功能

 更新時間:2022年02月24日 13:33:17   作者:百事可口  
這篇文章主要為大家詳細介紹了vue實現(xiàn)靜態(tài)頁面點贊和取消點贊的功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)靜態(tài)頁面點贊和取消點贊的具體代碼,供大家參考,具體內(nèi)容如下

效果如下:

點擊之后 點贊數(shù)量+1,紅心亮
再次點擊,點贊數(shù)量-1,紅心滅

邏輯:

由于列表是動態(tài)渲染的(for),數(shù)據(jù)是mock隨機生成,所以綁定點擊事件時,應(yīng)該把當前下標和item的id都傳到事件上,在data里面聲明空數(shù)組,用來存放已經(jīng)點擊的id,
點贊點擊事件觸發(fā),先進行判斷,
1.當前data內(nèi)的數(shù)組是否有這個點擊的id,用indexof方法查找,如果找不到,執(zhí)行點贊功能,數(shù)量+1,紅心樣式取反,最重要的是將當前點贊的id存到data的數(shù)組里 push進去。
2.反之找到了,就將他數(shù)量-1,心取消。
for遍歷data的數(shù)組,目的是為了找到當前點擊的id的下標,找到后,直接利用splice刪除的放法,splice(i,1)第一個參數(shù)為下標,第二個刪除一個,vue組件代碼如下:

<template>
? <div v-if="foodMeishi">
? ? <div
? ? ? class="food-box-content"
? ? ? v-for="(item, index) in foodMeishi"
? ? ? :key="item.id"
? ? >
? ? ? <img class="food-photo" :src="item.foodphotoUrl" alt="" />
? ? ? <div class="head">
? ? ? ? <img :src="item.headImg" alt="" />
? ? ? ? <p class="head-name">{{ item.headName }}</p>
? ? ? </div>
? ? ? <div class="food-content">
? ? ? ? {{ item.content }}
? ? ? </div>
? ? ? <div class="food-bottom">
? ? ? ? <div class="xin" @click="dianzan(index, item.id)">
? ? ? ? ? <i class="iconfont " v-if="item.xin">&#xe607;</i>
? ? ? ? ? <i class="iconfont" v-else>&#xe68b;</i>
? ? ? ? ? <span>{{ item.dianzan }}</span>
? ? ? ? </div>
? ? ? ? <div class="pinglun">
? ? ? ? ? <i class="iconfont">&#xe603;</i>
? ? ? ? ? <span>{{ item.pinglun }}</span>
? ? ? ? </div>
? ? ? </div>
? ? </div>
? </div>
</template>

<script>
export default {
? props: ["foodMeishi"],
? data() {
? ? return {
? ? ? zanListId: [1, 2],
? ? };
? },
? methods: {
? ? dianzan(index, id) {
? ? ? let list = this.zanListId;
? ? ? if (list.indexOf(id) == -1) {
? ? ? ? // 沒找到
? ? ? ? // 執(zhí)行點贊功能
? ? ? ? this.foodMeishi[index].dianzan += 1;
? ? ? ? // 加到數(shù)組中
? ? ? ? this.zanListId.push(id);
? ? ? ? this.foodMeishi[index].xin = !this.foodMeishi[index].xin;
? ? ? } else {
? ? ? ? // 取消點贊
? ? ? ? this.foodMeishi[index].dianzan -= 1;
? ? ? ? this.foodMeishi[index].xin = !this.foodMeishi[index].xin;
? ? ? ? for (var i in this.zanListId) {
? ? ? ? ? if (this.zanListId[i] == id) {
? ? ? ? ? ? this.zanListId.splice(i, 1);
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? },
? },
};
</script>

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

相關(guān)文章

  • 基于Vue3.0開發(fā)輕量級手機端彈框組件V3Popup的場景分析

    基于Vue3.0開發(fā)輕量級手機端彈框組件V3Popup的場景分析

    這篇文章主要介紹了基于Vue3.0開發(fā)輕量級手機端彈框組件V3Popup,本文通過場景分析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼

    element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼

    最近寫項目的時候需要一次上傳多張圖片,本文主要介紹了element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • VUE 記賬憑證模塊組件的示例代碼

    VUE 記賬憑證模塊組件的示例代碼

    這篇文章主要介紹了VUE記賬憑證模塊組件的實例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 使用Vue編寫一個日期選擇器

    使用Vue編寫一個日期選擇器

    這篇文章主要為大家詳細介紹了如何使用Vue編寫一個簡單的日期選擇器,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • vue2.0 兄弟組件(平級)通訊的實現(xiàn)代碼

    vue2.0 兄弟組件(平級)通訊的實現(xiàn)代碼

    這篇文章主要介紹了vue2.0 兄弟組件(平級)通訊的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 手把手教你用VUE封裝一個文本滾動組件

    手把手教你用VUE封裝一個文本滾動組件

    封裝組件相信對大家來說都不陌生了,下面這篇文章主要給大家介紹了關(guān)于用VUE封裝一個文本滾動組件的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 詳解vue-cli中配置sass

    詳解vue-cli中配置sass

    本篇文章主要介紹了詳解vue-cli中配置sass ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • vue組件間的通信,子組件向父組件傳值的方式匯總

    vue組件間的通信,子組件向父組件傳值的方式匯總

    這篇文章主要介紹了vue組件間的通信,子組件向父組件傳值的方式匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue3如何按需加載第三方組件庫詳解

    vue3如何按需加載第三方組件庫詳解

    距離 Vue 3.0 正式版發(fā)布已經(jīng)有一段時間了,關(guān)于vue3組件庫相關(guān)的問題還是挺多人感興趣的,這篇文章主要給大家介紹了關(guān)于vue3如何按需加載第三方組件庫的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue3?使用setup語法糖實現(xiàn)分類管理功能

    vue3?使用setup語法糖實現(xiàn)分類管理功能

    這篇文章主要介紹了vue3?使用setup語法糖實現(xiàn)分類管理,本次模塊使用 vue3+element-plus 實現(xiàn)一個新聞?wù)镜暮笈_分類管理模塊,其中新增、編輯采用對話框方式公用一個表單,需要的朋友可以參考下
    2022-08-08

最新評論