关注界面-作者组件制作
# 关注界面-作者组件制作
# 一、全局事件监听
处理关注界面数据不刷新问题,使用uni.$emit事件注册全局事件
// saveLike组件
uni.$emit('updateArticle')
// followPage界面
// todo 没有这个历史记录栈的时候不会触发这个事件
uni.$on('updateArticle',(e)=> {
this._getFollowArticle();
})
# 二、作者组件结构搭建
- 关联swiper滑动组件
- 结构样式添加
# 三、云函数定义
'use strict';
const db = uniCloud.database()
const $ = db.command.aggregate; // 获取一个聚合的操作符
exports.main = async (event, context) => {
const {
userId
} = event;
let userInfo = await db.collection('user').doc(userId).get()
let article_likes_ids = userInfo.data[0].article_likes_ids; // 获取用户的收藏文章的数组
const list = await db.collection('article')
.aggregate()
.addFields({
// 判断这个文章的数组是否包含文章的_id ,$_id 指的是文章列表里面的_id,如果包含,返回true,否则,返回false,在这个里面是过滤查询的每一条记录值
is_like: $.in(['$_id', article_likes_ids])
})
.project({
content: 0
})
.match({
is_like:true
})
.end();
//返回数据给客户端
return {
code: 0,
msg: "请求成功",
data: list.data
}
};
# 四、客户端渲染
将获取到的内容进行渲染操作
# 五、数据同步
定义全局事件,实现修改关注作者时触发foll_author事件从新调用
uni.$on('updateAuthor',(e)=> {
this._getAuthorList();
})