讲师中心 微信公众号
AI工具推荐 视频效率加速

如何使用Vue实现添加好友功能

落枫大大_8446

落枫大大_8446

发布时间:2023-04-12 09:21:40

|

1286人浏览过

|

来源于php中文网

原创

随着社交媒体的兴起,添加好友已经成为了人们日常交往中不可或缺的一部分。而对于前端开发者来说,如何在页面中实现添加好友功能,是一个值得思考的问题。本文将介绍如何使用vue框架实现添加好友功能。

一、前置知识

在开始介绍添加好友功能之前,我们需要了解以下内容:

  1. 使用Vue CLI创建项目;
  2. Vue组件的基本概念和使用方法;
  3. 父子组件传值的方法;
  4. Vue Router的基本概念和使用方法。

二、设计页面

在设计添加好友的页面时,我们需要考虑页面的布局和功能。通常,添加好友功能需要包含以下内容:

立即学习“前端免费学习笔记(深入)”;

  1. 搜索框:用户可以在搜索框中输入好友的名字或者ID,进行搜索;
  2. 用户列表:根据搜索结果显示用户列表;
  3. 添加好友按钮:用户可以通过点击添加好友按钮,向搜索结果中的用户发送好友请求。

根据以上内容,我们可以设计以下页面布局:

<template>
  <div class="friend-add">
    <!-- 搜索框部分 -->
    <div class="search-bar">
      <input type="text" placeholder="请输入好友名字或ID" v-model="keyword">
      <button @click="search">搜索</button>
    </div>
    <!-- 用户列表部分 -->
    <div class="user-list">
      <ul>
        <li v-for="(user, index) in userList" :key="index">
          {{ user.name }}
          <button @click="addFriend(user)">添加好友</button>
        </li>
      </ul>
    </div>
  </div>
</template>

三、实现功能

在设计好页面布局之后,我们需要实现添加好友的功能。以下是具体的实现方法:

  1. 获取用户列表

用户在搜索框中输入关键词之后,我们需要通过接口请求,获取到符合搜索条件的用户列表。在Vue中,我们通常将这个功能封装到一个组件中:

<template>
  <div class="user-list">
    <ul>
      <li v-for="(user, index) in userList" :key="index">{{ user.name }}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        userList: []
      }
    },
    methods: {
      getUserList() {
        // TODO: 发送接口请求,获取用户列表
        this.userList = [
          { name: '张三', id: 1 },
          { name: '李四', id: 2 },
          { name: '王五', id: 3 },
        ]
      }
    },
    mounted() {
      this.getUserList()
    }
  }
</script>

在上述代码中,我们定义了一个名为getUserList的方法,用于向后端发送请求,获取符合搜索条件的用户列表,在mounted函数中,我们调用了getUserList方法,使得组件加载完成之后就会向后端发送请求获取用户列表。

  1. 父子组件传值

在Vue中,父组件向子组件传递数据,可以通过props实现。我们可以将搜索框中用户输入的关键词通过props传递给子组件,以便子组件在发送请求时能够根据搜索的关键词进行搜索。

<template>
  <div class="friend-add">
    <div class="search-bar">
      <!-- 在搜索框中添加v-model指令,将输入框中的值与父组件的keyword进行双向绑定 -->
      <input type="text" placeholder="请输入好友名字或ID" v-model="keyword">
      <button @click="search">搜索</button>
    </div>
    <user-list :keyword="keyword"></user-list>
  </div>
</template>

<script>
  import UserList from './UserList'
  
  export default {
    components: {
      UserList
    },
    data() {
      return {
        keyword: ''
      }
    },
    methods: {
      search() {
        // 点击搜索按钮时触发该函数,这里的search功能可以自行实现
        this.$refs.userList.getUserList()
      }
    }
  }
</script>

在上述代码中,我们定义了一个名为keyword的data属性,用于存储搜索框中用户输入的关键词。另外,我们还引入了名为UserList的组件,使用props将keyword传递给子组件,在点击搜索按钮时调用子组件的getUserList方法,触发搜索功能。

在子组件中,我们需要先定义一个名为keyword的props:

<template>
  <div class="user-list">
    <ul>
      <li v-for="(user, index) in userList" :key="index">
        {{ user.name }}
        <button @click="addFriend(user)">添加好友</button>
      </li>
    </ul>
  </div>
</template>

<script>
  export default {
    props: {
      keyword: String
    },
    data() {
      return {
        userList: []
      }
    },
    methods: {
      getUserList() {
        // TODO:根据this.keyword向后端发送请求,获取用户列表
      },
      addFriend(user) {
        // TODO:向后端发送请求,添加好友
      }
    }
  }
</script>

在上述代码中,我们定义了一个名为keyword的props,用于接收父组件传递过来的值。getUserList方法中,我们可以使用this.keyword获取到父组件传递过来的关键词进行搜索,addFriend方法用于向后端发送请求,添加好友。

  1. Vue Router

在实现添加好友功能时,我们通常需要考虑到用户在添加好友之后,页面的跳转问题。为了更好的实现页面跳转的功能,我们需要使用Vue Router。

首先,在创建Vue项目时,需要选择使用Vue Router:

vue create my-project

在选择Options时,选中Manually select features,然后选择Router,安装即可。

接着,在添加好友成功之后,我们需要跳转到添加好友详情页。这个功能可以使用Vue Router实现:

<template>
  <div>
    <!-- 用户列表部分 -->
    <div class="user-list">
      <ul>
        <li v-for="(user, index) in userList" :key="index">
          {{ user.name }}
          <button @click="addFriend(user)">添加好友</button>
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
  import { mapState } from 'vuex'
  
  export default {
    data() {
      return {
        userList: []
      }
    },
    computed: {
      ...mapState(['userInfo'])
    },
    methods: {
      async addFriend(user) {
        // 向后端发送请求,添加好友
        await this.$http.post('/add-friend', {id: user.id})
        
        // 添加好友成功之后,跳转到好友详情页面
        this.$router.push({ name: 'friendDetail', params: { friendId: user.id } })
      }
    }
  }
</script>

在上述代码中,我们首先引入了Vuex的mapState函数,通过该函数获取用户信息。接着,在addFriend方法中,我们向后端发送请求,添加好友,在添加好友成功之后,借助Vue Router实现跳转到好友详情页面。在跳转时,我们使用了路由的name和params属性,name属性表示页面的名称,params属性表示传递的参数。我们可以在src/router/index.js中定义该路由:

import Vue from 'vue'
import VueRouter from 'vue-router'
import FriendDetail from '@/views/FriendDetail.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/friend-detail/:friendId',
    name: 'friendDetail',
    component: FriendDetail
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

在上述代码中,我们定义了一个名为friendDetail的路由,该路由的path属性表示访问该页面的路径,name属性表示路由的名称,component属性表示该路由所对应的组件。FriendDetail组件是用于展示好友详情页的组件,可以在该组件中根据传递过来的friendId获取好友信息。

四、结语

在本文中,我们介绍了如何使用Vue框架实现添加好友功能。通过该功能的实现,我们不仅可以拓展自己的前端技能,还可以通过该功能来提高交流和社交能力,建立更多的社交关系。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

0

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

0

2026.11.04

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

0

2026.11.04

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

20

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn