当前位置:首页 > VUE

vue通讯录实现

2026-02-20 21:21:28VUE

实现 Vue 通讯录功能

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

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: '朋友' }
    }
  }
}

样式优化

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

.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.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配…

vue element实现

vue element实现

Vue Element UI 实现 Vue Element UI 是基于 Vue.js 的组件库,提供丰富的 UI 组件,适合快速开发企业级中后台产品。以下是一些关键实现方法和步骤: 安装 Vue…

实现.vue文件

实现.vue文件

创建.vue文件的基本结构 一个标准的.vue文件包含三个部分:模板(template)、脚本(script)和样式(style)。这种结构允许开发者在一个文件中管理组件的HTML、JavaScrip…

分页实现vue

分页实现vue

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