频道列表模块 (三) 03-删除我的频道功能-const定义的简单数据类型 是不能赋值修改 & 复杂数据类型,在不改变指向情况下,修改数据-arr.push(3)-[1 2 3]可实现

删除我的频道功能-const定义的简单数据类型 是不能赋值修改 & 复杂数据类型,在不改变指向情况下,修改数据-arr.push(3)-[1 2 3]可实现

src/views/home/components/channel-edit.vue中:

  • 绑定事件,进行删除
<van-icon @click="delChannel(i,item.id)"></van-icon>

methods里:

    // 删除频道
    async delChannel (index, channelId) {
      try {
        // 调用接口
        await delChannel(channelId)
        // 删除成功
        // 提示成功
        this.$toast({ type: 'success', message: '删除成功' })
        // 更新界面(频道编辑组件,父组件)
        // 在 channels 中删除一项
        // 注意:父传子的数据,如果是简单数据类型 是不能赋值修改 ,
        // 但是如果是复杂数据类型,在不改变指向情况下,修改数据。
        // 当删除的频道 在当前频道的前面或者就是当前频道  当前激活频道的索引往前一位
        if (index <= this.activeIndex) {
          this.$emit('update:activeIndex', this.activeIndex - 1)
        }
        this.channels.splice(index, 1)
        // 通知父组件删除成功,如果删除后激活的频道没有数据,需要加载数据。
        // this.$emit('on-delete') 是删除后 激活的频道如果没有数据 通知父组件主动加载一次数据
      } catch (e) {
        this.$toast({ type: 'fail', message: '删除失败' })
      }
    },
  • 通知父组件,删除成功,需要判断激活的频道是否有数据,没有需要加载。
  • 注意:如果组件自动加载了数据,以下逻辑不用实现。
   <edit-channel
      v-model="showEditChannel"
      :channels="channels"
+     @on-delete="changeChannel"
      :activeIndex.sync="activeIndex">
    </edit-channel>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值