文章详情页

铺设数据

1、发送网络请求

首先查看接口文档要求:

在这里插入图片描述
在这里插入图片描述
根据要求发送请求:
在这里插入图片描述

2、我们在页面创建初期就使用

在这里插入图片描述
然后定义一个变量(onDetails)来保存我们后台返回给我们的数据

3、铺设数据

在这里插入图片描述
在这里插入图片描述
发布时间我们用封装好的处理时间的方法(改成多久之前)
在这里插入图片描述
在这里插入图片描述

关注/取消关注

1、关注/已关注的显示隐藏

在我们请求文章详情接口时,后台会返回一个is_followed,代表是否关注作者,我们可以用他来作为v-if判断的条件
在这里插入图片描述

(1)接口信息

在这里插入图片描述

(2)绑定一个点击事件

在这里插入图片描述
让后台数据更新我们的点击关注/取关

async onFollow(boolean) {
      // this.onDetails.is_followed = !this.onDetails.is_followed;
      // 在已关注上面点击,变成+关注(取关的操作)
      if (boolean === true) {
        this.onDetails.is_followed = false;
        const res=await deFollowAPI({
          target:this.onDetails.aut_id
        })
      } else {
        //在+关注上面点击,变成已关注(关注的操作)
        this.onDetails.is_followed = true;
          const res=await getFollowAPI({
          target:this.onDetails.aut_id
        })
      }
    },

2、点赞/已点赞的显示隐藏

在这里插入图片描述

(1)先实现前端页面的点击切换效果

绑定一个点击事件onLike:
<!-- 点赞 -->
    <div>
      <!-- attitude用户对文章的态度, -1: 无态度,0-不喜欢,1-点赞 -->
      <div class="good img active-good" v-if="onDetails.attitude === 1" @click="onLike(true)">
        <img src="../../assets/已点赞.svg" alt="" />
        <span>已点赞</span>
      </div>
      <div class="good img" v-else @click="onLike(false)">
        <img src="../../assets/点赞.svg" alt="" />
        <span>点赞</span>
      </div>
    </div>
写方法
    // 点赞/已点赞
    onLike(boolean){
      // 判断用户点在哪里,true就是点在已点赞身上
      if(boolean===true){
        // 取消点赞,展示点赞的图标
        this.onDetails.attitude=0
      }else{
        // 展示已点赞的图标
        this.onDetails.attitude=1
      }
    }

(2)找接口文档

在这里插入图片描述

发送请求
/**点赞 */
export const getLikingsAPI=({target})=>{
  return axios({
    url:'/v1_0/article/likings',
    method:'POST',
    data:{
      target
    }
  })
}
/**取消点赞 */
export const disLikingsAPI=({target})=>{
  return axios({
    url:`/v1_0/article/likings/${target}`,
    method:'DELETE',
  })
}

代码实现:让我们的点击事件保存到数据库中

    // 点赞/已点赞
    async onLike(boolean) {
      // 判断用户点在哪里,true就是点在已点赞身上
      if (boolean === true) {
        // 取消点赞,展示点赞的图标(取消点赞)
        this.onDetails.attitude = 0;//-1是无态度,我们这里用0
        const res = await disLikingsAPI({
          target: this.onDetails.art_id,
        });
      } else {
        // 展示已点赞的图标(点赞)
        this.onDetails.attitude = 1;
        const res = await getLikingsAPI({
          target: this.onDetails.art_id,
        });
      }
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值