当前位置:首页 > VUE

vue实现选择好友群发

2026-02-24 09:26:49VUE

Vue 实现选择好友群发功能

数据准备

在 Vue 的 datasetup 中定义好友列表和选中好友的数组:

data() {
  return {
    friends: [
      { id: 1, name: '张三', selected: false },
      { id: 2, name: '李四', selected: false }
    ],
    selectedFriends: []
  }
}

好友选择界面

使用 v-for 渲染好友列表,并通过 v-model 绑定选择状态:

<div v-for="friend in friends" :key="friend.id">
  <input 
    type="checkbox" 
    v-model="friend.selected"
    @change="updateSelectedFriends(friend)"
  >
  <label>{{ friend.name }}</label>
</div>

更新选中好友

在 methods 中定义方法处理选中状态变化:

methods: {
  updateSelectedFriends(friend) {
    if (friend.selected) {
      this.selectedFriends.push(friend.id)
    } else {
      const index = this.selectedFriends.indexOf(friend.id)
      this.selectedFriends.splice(index, 1)
    }
  }
}

群发消息功能

添加消息输入框和发送按钮:

<textarea v-model="message" placeholder="输入要发送的消息"></textarea>
<button @click="sendBatchMessages" :disabled="selectedFriends.length === 0">
  群发消息
</button>

发送逻辑实现

实现群发消息的核心方法:

methods: {
  sendBatchMessages() {
    if (this.selectedFriends.length === 0) return

    this.selectedFriends.forEach(friendId => {
      const friend = this.friends.find(f => f.id === friendId)
      console.log(`发送给 ${friend.name}: ${this.message}`)
      // 这里替换为实际的API调用
    })

    // 清空选择
    this.friends.forEach(f => f.selected = false)
    this.selectedFriends = []
    this.message = ''
  }
}

优化体验

添加全选/取消全选功能:

<button @click="toggleSelectAll">
  {{ allSelected ? '取消全选' : '全选' }}
</button>
computed: {
  allSelected() {
    return this.friends.every(f => f.selected)
  }
},
methods: {
  toggleSelectAll() {
    const select = !this.allSelected
    this.friends.forEach(f => {
      f.selected = select
      this.updateSelectedFriends(f)
    })
  }
}

样式美化

使用 CSS 美化界面:

.friend-item {
  padding: 8px;
  border-bottom: 1px solid #eee;
}
.friend-item:hover {
  background-color: #f5f5f5;
}

注意事项

  1. 实际项目中应将好友数据通过 API 从后端获取
  2. 群发消息需要调用后端接口批量处理
  3. 添加加载状态和错误处理提升用户体验
  4. 对于大量好友应考虑分页或虚拟滚动优化性能

vue实现选择好友群发

标签: 好友vue
分享给朋友:

相关文章

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Je…

vue实现语音

vue实现语音

Vue 实现语音功能的方法 使用 Web Speech API Vue 可以结合 Web Speech API 实现语音识别和合成功能。Web Speech API 包含 SpeechRecognit…

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue 实现关闭

vue 实现关闭

Vue 实现关闭功能的方法 在Vue中实现关闭功能通常涉及组件销毁、模态框隐藏或路由跳转等场景。以下是几种常见实现方式: 销毁当前组件 使用v-if或v-show控制组件显示/隐藏,适用于局部组件:…