当前位置:首页 > 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中实现搜索查询功能通常涉及以下几个核心部分:数据绑定、事件监听、过滤逻辑和UI反馈。以下是一个完整的实现方案。 数据绑定与输入框 创建一个Vue组件,包含一个输入框用…

vue中登陆实现逻辑

vue中登陆实现逻辑

Vue 中登录实现逻辑 前端实现逻辑 表单验证 使用 Vue 的表单验证库(如 VeeValidate)或自定义验证规则,确保用户输入的账号和密码符合要求。例如,检查邮箱格式、密码长度等。 发送登录…

vue实现看板

vue实现看板

Vue 实现看板功能 使用 Vue 实现看板功能可以通过组件化开发、状态管理和拖拽库结合完成。以下是一个完整的实现方案: 基础项目结构 src/ ├── components/ │ ├── Ka…

vue实现录像

vue实现录像

Vue 实现录像功能 在 Vue 中实现录像功能通常需要借助浏览器的 MediaDevices API 和 MediaRecorder API。以下是实现步骤: 获取用户摄像头和麦克风权限 使用 n…

vue实现CRUD

vue实现CRUD

Vue 实现 CRUD 操作 Vue 提供了响应式数据绑定和组件化开发能力,结合后端 API 可以轻松实现 CRUD(增删改查)功能。以下是基于 Vue 3 和 Axios 的完整实现方案。 安装依…

vue日历实现

vue日历实现

实现基础日历布局 使用Vue的模板语法构建日历的基本HTML结构。一个典型的日历包含星期标题和日期格子,可以通过v-for循环生成。月份切换功能通过计算属性动态更新日期数组。 <templat…