当前位置:首页 > 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 属性以提高性能。

<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;
}

动态操作

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

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 响应式实现原理 Vue 的响应式系统基于 Object.defineProperty(Vue 2.x)或 Proxy(Vue 3.x)实现,通过数据劫持和依赖收集实现数据变化时的自动更新。…

vue 动画 实现

vue 动画 实现

vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要包括过渡动画和动态动画两类。 使用 <transition> 组件实现基础过渡 通过 Vue 内置的 <transi…

分页实现vue

分页实现vue

分页实现(Vue) 在Vue中实现分页功能通常需要结合前端分页逻辑和后端API支持。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在客户端完成分页逻辑。 <templ…

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue实现文字

vue实现文字

Vue 中实现文字显示的方法 在 Vue 中实现文字显示可以通过多种方式,包括插值表达式、指令、组件等。以下是几种常见的实现方法: 插值表达式 使用双大括号 {{ }} 进行文本插值,这是 Vue…

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…