当前位置:首页 > VUE

vue实现好友列表

2026-02-25 18:40:21VUE

Vue 实现好友列表

数据结构设计

使用 Vue 的 dataref(Composition API)定义好友列表数据。通常是一个数组,每个元素包含好友的基本信息(如 ID、头像、昵称、状态等)。

// Options API
data() {
  return {
    friends: [
      { id: 1, name: "张三", avatar: "avatar1.jpg", online: true },
      { id: 2, name: "李四", avatar: "avatar2.jpg", online: false }
    ]
  }
}

// Composition API
const friends = ref([
  { id: 1, name: "张三", avatar: "avatar1.jpg", online: true },
  { id: 2, name: "李四", avatar: "avatar2.jpg", online: false }
]);

列表渲染

使用 v-for 指令渲染好友列表,绑定 key 属性以提高性能。

vue实现好友列表

<template>
  <div class="friend-list">
    <div v-for="friend in friends" :key="friend.id" class="friend-item">
      <img :src="friend.avatar" :alt="friend.name" />
      <span>{{ friend.name }}</span>
      <span :class="{ online: friend.online }">
        {{ friend.online ? "在线" : "离线" }}
      </span>
    </div>
  </div>
</template>

样式与交互

通过 CSS 美化列表,并为列表项添加交互效果(如悬停、点击事件)。

.friend-list {
  width: 200px;
  border: 1px solid #eee;
}
.friend-item {
  padding: 10px;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.friend-item:hover {
  background: #f5f5f5;
}
.online {
  color: green;
}

动态操作

实现添加、删除或搜索好友的功能,通过方法更新列表数据。

vue实现好友列表

methods: {
  addFriend(name) {
    this.friends.push({
      id: this.friends.length + 1,
      name,
      avatar: "default.jpg",
      online: false
    });
  },
  removeFriend(id) {
    this.friends = this.friends.filter(friend => friend.id !== id);
  }
}

后端集成

通过 API 请求从后端获取好友列表数据,使用 axiosfetch

async created() {
  try {
    const response = await axios.get("/api/friends");
    this.friends = response.data;
  } catch (error) {
    console.error("获取好友列表失败", error);
  }
}

状态管理(可选)

对于复杂应用,可以使用 Vuex 或 Pinia 集中管理好友列表状态。

// Pinia 示例
export const useFriendStore = defineStore("friends", {
  state: () => ({
    friends: []
  }),
  actions: {
    async fetchFriends() {
      this.friends = await axios.get("/api/friends");
    }
  }
});

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

相关文章

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &l…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…

vue实现标题

vue实现标题

Vue 实现标题的方法 在Vue中实现标题可以通过多种方式,以下是几种常见的方法: 方法一:使用模板语法 在Vue组件的模板中直接使用HTML的<h1>到<h6>标签来定义…