当前位置:首页 > 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实现云端同步

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

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

相关文章

php分页代码简单实现

php分页代码简单实现

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

vue实现弹窗代码

vue实现弹窗代码

Vue 弹窗实现方法 方法一:使用组件与v-if控制显示 创建一个独立的弹窗组件(如Modal.vue),通过父组件的v-if或v-show控制显隐: <!-- Modal.vue --&g…

vue实现动画代码

vue实现动画代码

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡组件、CSS 动画库集成以及第三方动画库结合。以下是几种常见实现方法: 使用 Vue 内置过渡组件 Vue 的 <tran…

vue代码框实现

vue代码框实现

Vue 代码框实现方法 在 Vue 中实现代码框功能通常需要结合语法高亮库或 UI 组件库。以下是几种常见实现方式: 使用第三方库 Prism.js 安装 Prism.js 及相关依赖: npm…

vue代码怎么实现拼音

vue代码怎么实现拼音

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

vue 实现git代码对比

vue 实现git代码对比

Vue 实现 Git 代码对比 在 Vue 中实现 Git 代码对比功能,可以通过集成现有的代码对比库或调用 Git 相关 API 来实现。以下是几种常见的方法: 使用 diff2html 库 di…