当前位置:首页 > VUE

vue通讯录实现

2026-02-20 21:21:28VUE

实现 Vue 通讯录功能

通讯录功能通常包括联系人列表展示、搜索、分组和增删改查等操作。以下是基于 Vue 的实现方法:

数据准备

定义通讯录数据结构,通常包含姓名、电话、分组等信息:

data() {
  return {
    contacts: [
      { name: '张三', phone: '13800138000', group: '家人' },
      { name: '李四', phone: '13900139000', group: '朋友' },
      // 更多联系人...
    ],
    searchText: '',
    currentGroup: '全部'
  }
}

列表展示

使用 v-for 渲染联系人列表,添加筛选功能:

<template>
  <div class="contact-list">
    <input v-model="searchText" placeholder="搜索联系人">
    <select v-model="currentGroup">
      <option value="全部">全部</option>
      <option v-for="group in groups" :value="group">{{ group }}</option>
    </select>

    <ul>
      <li v-for="contact in filteredContacts" :key="contact.phone">
        {{ contact.name }} - {{ contact.phone }}
        <span class="group-tag">{{ contact.group }}</span>
      </li>
    </ul>
  </div>
</template>

计算属性处理筛选逻辑

computed: {
  groups() {
    return [...new Set(this.contacts.map(c => c.group))]
  },
  filteredContacts() {
    return this.contacts.filter(contact => {
      const matchSearch = contact.name.includes(this.searchText) || 
                         contact.phone.includes(this.searchText)
      const matchGroup = this.currentGroup === '全部' || 
                        contact.group === this.currentGroup
      return matchSearch && matchGroup
    })
  }
}

添加联系人功能

<div class="add-contact">
  <input v-model="newContact.name" placeholder="姓名">
  <input v-model="newContact.phone" placeholder="电话">
  <select v-model="newContact.group">
    <option v-for="group in groups" :value="group">{{ group }}</option>
  </select>
  <button @click="addContact">添加</button>
</div>
methods: {
  addContact() {
    if (this.newContact.name && this.newContact.phone) {
      this.contacts.push({...this.newContact})
      this.newContact = { name: '', phone: '', group: '朋友' }
    }
  }
}

样式优化

添加基础样式增强用户体验:

vue通讯录实现

.contact-list {
  max-width: 600px;
  margin: 0 auto;
}
.contact-list li {
  padding: 10px;
  border-bottom: 1px solid #eee;
}
.group-tag {
  float: right;
  color: #666;
  font-size: 0.8em;
}

进阶功能建议

  1. 使用 Vuex 管理通讯录状态,实现跨组件共享
  2. 添加本地存储功能,使用 localStorage 持久化数据
  3. 实现联系人详情页和编辑功能
  4. 添加字母索引快速导航
  5. 集成后端API实现数据同步

这个实现提供了通讯录的核心功能,可以根据实际需求进一步扩展和完善。

标签: 通讯录vue
分享给朋友:

相关文章

vue实现付款

vue实现付款

Vue 实现付款功能 在 Vue 中实现付款功能通常需要集成第三方支付网关(如支付宝、微信支付、Stripe 等)。以下是常见的实现方法: 集成支付宝/微信支付 安装必要的依赖(如 axios 用于…

vue底部实现

vue底部实现

Vue 底部实现方法 在 Vue 项目中实现底部布局可以通过多种方式完成,以下是一些常见的方法: 使用固定定位 将底部元素固定在页面底部,适用于单页应用或需要始终显示的底部栏。 <temp…

vue指令实现

vue指令实现

Vue 指令的实现方式 Vue 指令是特殊的标记,用于在 DOM 元素上应用特定的行为。可以通过全局或局部方式注册自定义指令。 全局注册指令 在 Vue 应用中通过 Vue.directive 方法…

vue实现ftp

vue实现ftp

Vue 中实现 FTP 功能 Vue 本身是一个前端框架,无法直接操作 FTP 协议(FTP 通常需要后端支持)。以下是两种常见实现方式: 前端与后端配合实现 FTP 前端通过 API 与后端通信,…

vue实现接口轮询

vue实现接口轮询

实现接口轮询的基本方法 在Vue中实现接口轮询通常通过setInterval或setTimeout结合异步请求完成。以下是一个基础实现示例: data() { return { poll…

vue列表查询实现

vue列表查询实现

实现 Vue 列表查询功能 基础列表渲染 在 Vue 中可以通过 v-for 指令实现列表渲染,结合计算属性动态过滤数据: <template> <div> &l…