当前位置:首页 > VUE

vue实现通讯录代码

2026-01-07 05:01:23VUE

以下是一个基于Vue.js实现的通讯录示例代码,包含联系人列表、搜索和添加功能:

实现步骤

创建Vue组件

<template>
  <div class="address-book">
    <h3>通讯录</h3>
    <input v-model="searchQuery" placeholder="搜索联系人" class="search-input">

    <button @click="showAddForm = true" class="add-btn">添加联系人</button>

    <div v-if="showAddForm" class="add-form">
      <input v-model="newContact.name" placeholder="姓名">
      <input v-model="newContact.phone" placeholder="电话">
      <button @click="addContact">保存</button>
      <button @click="showAddForm = false">取消</button>
    </div>

    <ul class="contact-list">
      <li v-for="contact in filteredContacts" :key="contact.id" class="contact-item">
        <span>{{ contact.name }}</span>
        <span>{{ contact.phone }}</span>
        <button @click="deleteContact(contact.id)" class="delete-btn">删除</button>
      </li>
    </ul>
  </div>
</template>

脚本部分

<script>
export default {
  data() {
    return {
      contacts: [
        { id: 1, name: '张三', phone: '13800138000' },
        { id: 2, name: '李四', phone: '13900139000' }
      ],
      searchQuery: '',
      showAddForm: false,
      newContact: {
        name: '',
        phone: ''
      }
    }
  },
  computed: {
    filteredContacts() {
      return this.contacts.filter(contact => {
        return contact.name.toLowerCase().includes(this.searchQuery.toLowerCase()) ||
               contact.phone.includes(this.searchQuery)
      })
    }
  },
  methods: {
    addContact() {
      if (this.newContact.name && this.newContact.phone) {
        this.contacts.push({
          id: Date.now(),
          ...this.newContact
        })
        this.newContact.name = ''
        this.newContact.phone = ''
        this.showAddForm = false
      }
    },
    deleteContact(id) {
      this.contacts = this.contacts.filter(contact => contact.id !== id)
    }
  }
}
</script>

样式部分

<style scoped>
.address-book {
  max-width: 500px;
  margin: 0 auto;
  padding: 20px;
}

.search-input {
  width: 100%;
  padding: 8px;
  margin-bottom: 15px;
}

.contact-list {
  list-style: none;
  padding: 0;
}

.contact-item {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  border-bottom: 1px solid #eee;
}

.add-btn {
  background-color: #4CAF50;
  color: white;
  padding: 8px 16px;
  border: none;
  cursor: pointer;
  margin-bottom: 15px;
}

.delete-btn {
  background-color: #f44336;
  color: white;
  border: none;
  padding: 5px 10px;
  cursor: pointer;
}

.add-form {
  margin-bottom: 20px;
  padding: 15px;
  background-color: #f9f9f9;
  border-radius: 5px;
}

.add-form input {
  display: block;
  width: 100%;
  padding: 8px;
  margin-bottom: 10px;
}
</style>

功能说明

搜索功能 通过计算属性filteredContacts实现实时搜索,可以按姓名或电话号码筛选联系人

添加联系人 点击"添加联系人"按钮显示表单,填写信息后保存到联系人列表

删除联系人 每个联系人项右侧有删除按钮,点击可移除该联系人

vue实现通讯录代码

扩展建议

  1. 添加联系人分组功能
  2. 实现联系人编辑功能
  3. 增加本地存储保存联系人数据
  4. 添加字母索引快速导航
  5. 集成API实现云端同步

该示例提供了基本通讯录功能的核心实现,可根据实际需求进一步扩展和完善。

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

相关文章

vue怎么实现文本代码实现

vue怎么实现文本代码实现

Vue 实现文本代码展示的方法 在 Vue 中展示代码块或格式化文本,可以通过多种方式实现。以下是几种常见方法: 使用 <pre> 和 <code> 标签 最简单的原生 HT…

vue实现代码

vue实现代码

以下是Vue实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ mes…

vue实现商品列表代码

vue实现商品列表代码

以下是一个基于Vue.js的商品列表实现示例,包含基础功能如数据渲染、分页和筛选: 基础商品列表渲染 <template> <div class="product-list"&…

vue代码怎么实现拼音

vue代码怎么实现拼音

实现拼音功能的方法 在Vue中实现拼音功能,可以通过拼音转换库将中文转换为拼音。以下是具体实现步骤: 安装拼音转换库 推荐使用pinyin或v-chinese2pinyin库。通过npm或yarn安…

vue实现轮播图代码

vue实现轮播图代码

Vue实现轮播图代码 以下是一个基于Vue 3的轮播图实现示例,包含自动轮播、手动切换和指示器功能。 基础结构 <template> <div class="carousel-…

vue实现代码实例

vue实现代码实例

以下是一个基于 Vue 3 的完整代码实例,包含核心功能实现和常见开发场景的示例: 基础组件示例 <template> <div> <h1>{{ ti…