uniapp开发一个交流社区小程序

uniapp开发一个交流社区小程序

假期的时候简单学了一下uniapp,想开发一款类似百度贴吧的交流社区来练练手。本篇文章主要记录开发过程,文末附上项目地址。

主要需要开发以下几个页面。

  • 信息页面
  • 热榜页面
  • 用户主页
  • 用户信息页
信息页面
该页面的功能主要用来展示信息,并且实现分享、浏览量、点赞以及二级评论等功能。

部分代码展示:

		// 点击评论帖子clickCommentPost(post) {console.log('clickCommentPost');// 重置评论框this.$refs.starCommentReplyRef.resetCommentReply()this.$refs.starCommentReplyRef.focus = truethis.goArea('#comment-up-area')},// 点击删除评论clickDeleteComment(comment) {uni.showModal({title: '提示',content: '确定要删除该评论吗?',success: async (res) => {if (res.confirm) {uni.showLoading({title: '删除中',mask: true})await uniCloud.callFunction({name: 'star-community-comment',data: {flag: 3,data: {id: comment.id,updateData: {status: 3, // 0 审核中 1 正常 2 审核不通过 3 已删除 4 已违规}}}})if (comment.status === 1) {this.changePostCommentCount(comment.post_id, -1)}this.mescroll.resetUpScroll()uni.hideLoading()uni.showToast({title: '删除成功'})this.post = await this.getPost(this.post.id)}}})},// 选中评论selectComment(comment) {console.log('selectComment');// 重置评论框this.$refs.starCommentReplyRef.resetCommentReply()if (comment.father_id) {this.$refs.starCommentReplyRef.to_father_id = comment.father_idthis.$refs.starCommentReplyRef.to_child_id = comment.id} else {this.$refs.starCommentReplyRef.to_father_id = comment.id}this.$refs.starCommentReplyRef.to_user_id = comment.user_idthis.$refs.starCommentReplyRef.placeholder = `回复:${comment.nickname}`this.$refs.starCommentReplyRef.focus = true},

结果展示:
社区主页
在这里插入图片描述

热榜页面
该页面的功能主要根据算法,推断出热门的文章并展示。

部分代码展示:

	// 拉取帖子列表async getPostList(page) {let vuex_user = this.vuex_userlet res = await uniCloud.callFunction({name: 'star-community-post',data: {flag: 6,data: {match: {status: 1, // 0 审核中 1 正常 2 审核不通过 3 已删除 4 已违规school: this.tabCurrent === 0 ? vuex_user.school : undefined,createTime: {$gte: Date.now() - 3 * 24 * 60 * 60 * 1000}},addFields: {hot: {$divide: [{$sum: [{$multiply: ["$shareCount", 1000]},{$multiply: ["$viewCount", 10]},{$multiply: ["$commentCount", 1000]},{$multiply: ["$likeCount", 1000]},{$multiply: ["$recommendCount", 2000]}]}, 10]}},sort: {hot: -1,createTime: -1,},skip: (page.num - 1) * page.size,limit: page.size}}})return res.result.data// return mockPost.generateRandomPosts(size)},

结果展示:

在这里插入图片描述

用户主页
该页面就是传统的我的页面,可以查看当前账户发布的文章、浏览量、粉丝数等相关信息,并且支持自定义主页背景图。

部分代码展示:

	// 下拉刷新async onPullDownRefresh() {this.user = await this.getUser(this.user.id)this.mescroll.resetUpScroll()uni.stopPullDownRefresh()},async onLoad(option) {console.log('option.id', option?.id);let vuex_user = this.vuex_userconsole.log('vuex_user.id', vuex_user.id);if (option?.id) {// 根据id判断 我的主页 还是 ta的主页let user_id = option.idif (user_id === vuex_user.id) {console.log('我的主页');this.user = vuex_user} else {console.log('ta的主页');this.user = await this.getUser(user_id)await this.getIsCare(user_id)}} else {console.log('我的主页');this.user = vuex_user}},async onShow() {if (this.user) {this.user = await this.getUser(this.user.id)}},

结果展示:
在这里插入图片描述
在这里插入图片描述

用户信息页
这里使用的是uniapp提供的uni-id用户体系,提供了用户注册、用户登录、用户退出、用户信息修改等一系列功能。

结果展示:
在这里插入图片描述

整个项目已经打包发上uniapp插件市场中,附上项目地址https://ext.dcloud.net.cn/plugin?id=15412,下载后开箱即用。

附上项目体验二维码:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学成在线:采用XXL-JOB任务调度方案使用FFmpeg处理视频转码业务

分片技术方案 概述 XXL-JOB并不直接提供数据处理的功能,它只会给所有注册的执行器分配好分片序号,在向执行器下发任务调度的同时携带分片总数和当前分片序号等参数 设计作业分片方案保证多个执行器之间不会查询到重复的任务,保证任务不会重复执行 任…

【NTN 卫星通信】基于NTN的多3GPP连接应用场景

1 概述 同时聚合两条3GPP接入链路,其中一条为非地面网络,可以提供以下5G业务使能,尤其适用于带宽有限或接入链路不可靠的服务不足地区:   -扩展流动宽频   -超可靠的服务通信 如技术报告38.821所述,若干服务场景(例如在偏远地…

镜舟科技客户成功团队负责人孟庆欢:湖仓一体将成为数据架构的新范式

大数据产业创新服务媒体 ——聚焦数据 改变商业 随着数字化的概念逐步深入不同领域企业的运营中,业务形态和数字化路径也越来越丰富。这也为企业数据处理、储存的方式提出了更多要求。对于企业,尤其是数据驱动型企业来说,需要强大的解决方案…

一篇文章了解系统眼中的键盘--以一个简单的系统分析从按键的输入到字符的显示

键盘输入 实现使用的设备 intel架构32位CPU, 思路为嵌入式系统工程师,使用的操作系统是《30天自制操作系统》里面的系统进行讲解 硬件实现 按键 使用单片机等的引脚可以获取电平状态从而获得按键的状态(单片机是一种集成到一块硅片上构成的一个小而完善的微型计算机系统, 用…

20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml&#xff0c;实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…

MySQL-----DML基础操作

DML语句 DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增删改操作。 ▶ 添加数据(INSERT) 【语法】 1. 给指定字段添加数据 INSERTO 表名 (字段名1&#xff0c;字段名2,...) VALUES (值1&#xff0c;值2,...); 2.给全…

ios搭建OpenGL环境

前言 本篇文章介绍在ios搭建OpenGL开发环境 在app的启动文章中&#xff0c;讲述了一个ios应用是如何启动的以及在IOS 13之后苹果公司推出的多窗口功能&#xff0c;通过app的启动这篇文章&#xff0c;我们基本能随心所欲的搭建一个app应用环境&#xff0c;搭建完成后的基本文件…

文心一言 VS 讯飞星火 VS chatgpt (193)-- 算法导论14.3 1题

一、用go语言&#xff0c;写出作用于区间树的结点且在 〇(1) 时间内更新 max 属性的过程 LEFT-ROTATE 的伪代码。 文心一言&#xff1a; 以下是一个简单的LEFT-ROTATE的伪代码&#xff0c;它对一个二叉搜索树进行左旋转操作。这个操作的作用是更新节点的max属性&#xff0c;使…

c++类继承

一、继承的规则 &#xff08;1&#xff09;基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如&#xff0c;当继承方式为protected时&#xff0c;那么基类成员在派生类中的访问权限最高也为protected&#xff0c;高于protected会降级为protected&#xff0c;但低…

JAVA 中栈,为什么要使用Deque,而不推荐使用Stack

双端队列&#xff08;Deque&#xff09; 一、概念 1. 概念 双端队列&#xff08;Deque&#xff09;是Quene是一个子接口&#xff0c;双向队列是指该队列两端的元素既能入队&#xff08;offer&#xff09;也能出队(poll)&#xff0c;如果将Deque限制为只能从一端入队(push…

webpack配置

一、很多基础方面的配置被vuecli所集成一般项目都是使用vuecli,不会真正的去从0-1进行webpack配置: 1、vuecli中的webpack基础配置: (1)入口文件默认在src/main;输出在dist; (2)集成了大量的插件和加载器:babel-loader 处理 JavaScript 文件、使用 css-loader 和 style-load…

Android Studio从零基础到APP上线(3)

第3章 简单控件 本章介绍App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图,容纳视图的常用布局,响应点击的按钮控件,显示图片的图像视图等。然后结合本章所学的知识,演示一个实战项目“简单计算器”的设计与实现。 3.1 文本显示 本节介绍如何在文本视图Tex…