当前位置:首页 > VUE

vue实现通讯录代码

2026-01-12 05:44:38VUE

实现思路

Vue实现通讯录的核心在于数据管理和组件交互。通常需要包含联系人列表、搜索功能、分组索引以及添加/编辑功能。

基本结构

创建Vue组件时需包含以下部分:

  • 数据模型:存储联系人数组
  • 字母索引栏:实现快速跳转
  • 搜索框:过滤联系人
  • 列表渲染:展示联系人信息

核心代码示例

数据模型

data() {
  return {
    contacts: [
      { name: '张三', phone: '13800138000', initial: 'Z' },
      { name: '李四', phone: '13900139000', initial: 'L' }
    ],
    searchText: ''
  }
}

计算属性处理数据

computed: {
  filteredContacts() {
    return this.contacts.filter(item => 
      item.name.includes(this.searchText) || 
      item.phone.includes(this.searchText)
    )
  },
  groupedContacts() {
    const groups = {}
    this.filteredContacts.forEach(item => {
      const initial = item.initial.toUpperCase()
      if (!groups[initial]) {
        groups[initial] = []
      }
      groups[initial].push(item)
    })
    return groups
  },
  initials() {
    return Object.keys(this.groupedContacts).sort()
  }
}

模板部分

<div class="address-book">
  <input v-model="searchText" placeholder="搜索联系人">

  <div class="index-bar">
    <span 
      v-for="initial in initials" 
      :key="initial"
      @click="scrollTo(initial)"
    >
      {{ initial }}
    </span>
  </div>

  <div class="contact-list">
    <div v-for="(group, initial) in groupedContacts" :key="initial">
      <h3 :id="initial">{{ initial }}</h3>
      <div 
        v-for="contact in group" 
        :key="contact.phone"
        class="contact-item"
      >
        <span>{{ contact.name }}</span>
        <span>{{ contact.phone }}</span>
      </div>
    </div>
  </div>
</div>

滚动定位方法

methods: {
  scrollTo(initial) {
    const element = document.getElementById(initial)
    if (element) {
      element.scrollIntoView({ behavior: 'smooth' })
    }
  }
}

样式优化建议

.address-book {
  position: relative;
  height: 100vh;
}
.index-bar {
  position: fixed;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
}
.contact-list {
  overflow-y: auto;
  height: calc(100% - 60px);
}
.contact-item {
  padding: 10px;
  border-bottom: 1px solid #eee;
}

功能扩展建议

  • 添加本地存储功能保存联系人
  • 实现联系人详情页和编辑功能
  • 添加手机震动反馈当点击字母索引时
  • 优化移动端触摸事件处理

性能优化

对于大型通讯录,建议:

  • 使用虚拟滚动技术
  • 对列表数据进行分页加载
  • 使用Web Worker处理搜索过滤

以上代码提供了Vue实现通讯录的基本框架,可根据实际需求进行调整和扩展。

vue实现通讯录代码

标签: 通讯录代码
分享给朋友:

相关文章

淘宝css代码制作

淘宝css代码制作

在淘宝店铺装修中,CSS代码用于自定义页面样式,提升视觉效果和用户体验。以下是常见的CSS代码制作方法和应用场景: 自定义店铺背景 通过CSS可以修改店铺背景颜色或图片,代码示例如下: bod…

vue本地查询代码实现

vue本地查询代码实现

Vue 本地查询代码实现 在Vue中实现本地查询功能,可以通过以下几种方式实现,具体取决于数据源和查询需求。 使用计算属性进行本地查询 计算属性是Vue中处理响应式数据查询的高效方式,适合基于现有…

vue扫码登录代码实现

vue扫码登录代码实现

Vue 扫码登录实现方案 准备工作 确保项目已安装 Vue 2/3 及相关依赖,需要后端提供生成二维码和验证扫码状态的接口。 生成二维码 使用 qrcode 库生成登录二维码,需调用后端接口获取唯一…

代码实现vue

代码实现vue

安装Vue.js 通过npm或yarn安装Vue.js最新稳定版本。确保已安装Node.js环境。 npm install vue # 或 yarn add vue 创建Vue实例 在HTML文件…

php分页代码简单实现

php分页代码简单实现

基本分页实现 在PHP中实现分页功能通常需要结合MySQL的LIMIT子句。以下是一个基础实现示例: <?php // 数据库连接 $conn = mysqli_connect("localh…