…">
当前位置:首页 > uni-app

uniapp点赞源码

2026-03-05 12:39:06uni-app

uniapp点赞源码

以下是一个基于UniApp的点赞功能实现示例,包含前端交互和基础后端逻辑模拟:

前端页面实现

<template>
  <view class="container">
    <view class="like-container" @click="handleLike">
      <image 
        :src="isLiked ? '/static/liked.png' : '/static/like.png'" 
        class="like-icon"
      />
      <text>{{ likeCount }}</text>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      isLiked: false,
      likeCount: 0
    }
  },
  methods: {
    handleLike() {
      this.isLiked = !this.isLiked
      this.likeCount = this.isLiked ? this.likeCount + 1 : this.likeCount - 1

      // 实际项目中这里应该调用API
      uni.request({
        url: 'https://your-api.com/like',
        method: 'POST',
        data: {
          postId: 123,
          action: this.isLiked ? 'like' : 'unlike'
        }
      })
    }
  }
}
</script>

<style>
.like-container {
  display: flex;
  align-items: center;
  padding: 10px;
}
.like-icon {
  width: 20px;
  height: 20px;
  margin-right: 5px;
}
</style>

后端模拟实现(Node.js示例)

const express = require('express')
const app = express()
app.use(express.json())

let likesData = {}

app.post('/like', (req, res) => {
  const { postId, action } = req.body

  if (!likesData[postId]) {
    likesData[postId] = 0
  }

  if (action === 'like') {
    likesData[postId]++
  } else {
    likesData[postId] = Math.max(0, likesData[postId] - 1)
  }

  res.json({ 
    success: true,
    count: likesData[postId] 
  })
})

app.listen(3000)

关键功能说明

  • 状态管理:使用isLiked布尔值记录当前点赞状态
  • 计数器:likeCount实时显示点赞数量
  • 防抖处理:实际项目中应添加防抖逻辑防止快速重复点击
  • 数据持久化:需要配合数据库实现点赞数据的持久化存储

扩展功能建议

  • 添加动画效果提升用户体验
  • 实现用户鉴权确保点赞操作真实性
  • 使用本地缓存减少API请求
  • 考虑并发情况下的数据一致性

以上代码需要根据实际项目需求进行调整,特别是后端API部分需要连接数据库实现完整功能。

uniapp点赞源码

标签: 源码uniapp
分享给朋友:

相关文章

uniapp和vue有什么区别

uniapp和vue有什么区别

uniapp和vue的区别 1. 定位与用途 Vue:一个渐进式JavaScript框架,专注于构建用户界面,适用于开发单页应用(SPA)或复杂前端项目。 UniApp:基于Vue.js的…

uniapp安装axios

uniapp安装axios

安装axios 在uniapp项目中安装axios需要确保项目支持node_modules管理。通过npm或yarn安装axios: npm install axios # 或 yarn add a…

uniapp前端项目

uniapp前端项目

Uniapp 前端项目开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息: 环…

uniapp设置背景

uniapp设置背景

设置全局背景样式 在App.vue文件中添加全局样式,使用page选择器设置页面背景。这种方式会影响所有页面背景。 <style> page { background-col…

uniapp 如何封装request请求

uniapp 如何封装request请求

封装 request 请求的核心思路 在 UniApp 中封装请求通常基于 uni.request,通过统一处理 URL、参数、header 和拦截逻辑提升代码复用性。以下是一个完整封装方案: 创建…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…