微信小程序仿朋友圈功能開發(發布、點贊、評論等功能)
喜大普奔,新版本開源了,參見文章微信小程序--仿朋友圈Pro(內容發布、點贊、評論、回復評論)
1.項目分析
項目整體分為三個部分
- 發布
- 展示
- 詳情頁
2.數據庫設計分析
所有表共有字段
- create_time 記錄的創建時間
- update_time 記錄最近的一次修改時間
動態表設計 circles_list
既然是仿朋友圈功能實現,那么數據實體必然包括 文字(主題內容) 和 圖片。
-
content
-
images
發布的信息還要攜帶上發布者的身份識別碼、昵稱 和 頭像 , 可以選擇性的帶上位置信息(不需要要進行功能拓展的話就不用加上該字段)。
-
userid
-
nickname
-
avatar
-
location
功能中存在 點贊 , 評論等功能,需要的字段有 點贊數,評論數。
- thumbsnum
- remarksnum
對於每一條記錄,都要設置一個主鍵,唯一識別碼 _id
- _id
點贊表設計 thumbs_list
設計該表的主要功能是 判斷 該用戶 是否對某個動態點過贊
- circle_id 點贊的文章id
- userid
- cancle true / false 用於配置多次點擊取消點贊
- _id
評論表設置 remarks_list
- circle_id 評論的文章id
- userid
- content 評論的內容
- avatar 評論者頭像
- nickname 評論者昵稱
- _id
3.項目效果
使用的框架 ColorUI
按照順序展示
1.發布界面
2.展示界面
3.詳情展示頁
4.項目關鍵問題
- 獲取用戶信息授權
我是在點擊發布的圖片按鈕處做的處理
<button
open-type="getUserInfo"
bindgetuserinfo="topub">
<image class="add_icon" src="../../images/add.png"></image>
</button>
topub(e){
if (e.detail.errMsg == "getUserInfo:ok") {
console.log('獲得授權成功')
app.globalData.userInfo = e.detail.userInfo;
wx.setStorageSync('wxuserinfo', e.detail.userInfo)
//console.log(e.detail.userInfo)
wx.navigateTo({
url: 'SocialCirclePub/SocialCirclePub',
})
} else {
console.log('獲得授權失敗')
}
}
- 點贊評論數目增加處理
通過雲函數解決 inc 解決
// 雲函數入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
var opr = event.opr;
if(opr == 'incthumb'){
try{
return db.collection('circles_list').doc(event.id).update({
data:{
thumbsnum:_.inc(1)
}
})
}catch(e){
console.error(e)
}
}else if (opr == 'incremark') {
try {
return db.collection('circles_list').doc(event.id).update({
data: {
remarksnum: _.inc(1)
}
})
} catch (e) {
console.error(e)
}
}
}
5.源碼
小程序開發聯系QQ:1025584691