关于Vue前端接口对接的思考

news2024/11/16 13:37:23

关于Vue前端接口对接的思考

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.vue 组件分类和获取数值的方式
      • 2.http 通信方式 分类 如何对接
      • 3.vue 组件分类和赋值方式,
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

需求:

设计思路

实现思路分析

1.vue 组件分类和获取数值的方式

在Vue中,组件可以分为以下几种类型:

  1. 全局组件(Global Components):全局组件是在Vue实例化前定义的组件,可以在任何地方使用。可以通过Vue.component方法全局注册组件,或者在Vue实例中的components属性上注册组件。

  2. 局部组件(Local Components):局部组件是在Vue实例中定义的组件,只能在该Vue实例的范围内使用。可以在Vue实例的components属性中注册组件。

  3. 私有组件(Private Components):私有组件是在其他组件内部定义的组件,只能在该组件的范围内使用。可以在父组件的components属性中注册私有组件。

获取数值的方式取决于数据是在父组件传递给子组件还是在子组件自己定义的。以下是常见的获取数值的方式:

  1. 父组件传值给子组件:父组件通过属性的形式将数据传递给子组件,子组件可以通过props选项接收数据。在子组件中,可以通过this.$props或者直接使用props定义的变量名来获取父组件传递的数据。

  2. 子组件自定义数据:子组件可以在自己的data选项中定义数据,并通过模板或者计算属性等方式获取和使用这些数据。

  3. 子组件事件传递数据给父组件:子组件可以通过$emit方法触发自定义事件,并传递数据给父组件。父组件可以通过在子组件上监听对应的事件来获取数据。

这些是Vue中常见的组件分类和获取数值的方式,具体使用方法可以参考Vue的官方文档。
其实绝大部分的场景中我们都可以尝试对应的localstrore 存取的方式进行处理。

要获取 Vue 组件中的值,可以使用以下几种方法:

  1. 使用 v-model 双向绑定:在组件中的输入框或其他表单元素上使用 v-model 指令绑定一个父组件的数据属性。当用户在子组件中修改输入框的值时,父组件的数据属性也会跟着更新。这样就可以通过访问父组件的数据属性来获取组件中的值。
<template>
  <input v-model="value" type="text">
</template>

<script>
export default {
  props: ['value']
}
</script>
  1. 使用 $emit 事件:在子组件中通过 $emit 方法触发一个自定义事件,并传递需要传递的值。在父组件中通过在子组件上使用 v-on 指令监听该事件,并在触发时执行相应的方法来获取传递的值。
<template>
  <button @click="onClick">Click me</button>
</template>

<script>
export default {
  methods: {
    onClick() {
      this.$emit('button-clicked', 'Hello!')
    }
  }
}
</script>
<template>
  <child-component @button-clicked="onButtonClicked"></child-component>
</template>

<script>
export default {
  methods: {
    onButtonClicked(value) {
      console.log(value) // 输出:Hello!
    }
  }
}
</script>
  1. 使用 ref 引用:在父组件中通过在子组件上使用 ref 属性为子组件指定一个引用名称,然后通过访问 this.$refs 对象来获取子组件实例。然后可以使用子组件实例的方法和属性来获取需要的值。
<template>
  <child-component ref="childComponentRef"></child-component>
</template>

<script>
export default {
  mounted() {
    const childComponent = this.$refs.childComponentRef
    const value = childComponent.getValue()
    console.log(value)
  }
}
</script>

如何获取具体的组件数值参看对应的API文档

2.http 通信方式 分类 如何对接

HTTP通信方式可以分为以下几种分类:

  1. 请求方式分类:HTTP通信可以通过不同的请求方式进行交互,包括GET、POST、PUT、DELETE等。

  2. 数据格式分类:HTTP通信可以通过不同的数据格式进行传输,包括普通文本、JSON、XML等。

  3. 接口类型分类:HTTP通信可以用于不同的接口类型,包括Web接口、RESTful接口、SOAP接口等。

对接HTTP通信方式,一般需要以下步骤:

  1. 确定通信方式:根据具体需求,选择合适的请求方式进行通信。

  2. 构建请求数据:根据接口要求,构建合适的请求数据,包括URL、请求头、请求体等。

  3. 发送请求:使用相应的编程语言或工具库,发送HTTP请求。

  4. 处理响应:接收到服务器的响应后,根据响应数据进行处理,可以是解析响应数据、处理异常情况等。

  5. 解析响应数据:根据接口要求,解析响应数据,可以是从响应数据中提取需要的信息。

  6. 后续处理:根据业务需求,对响应数据进行后续的处理,例如存储、展示、分析等。

接入HTTP通信方式的具体实现取决于开发环境和编程语言,可以使用各种编程语言提供的HTTP库或框架,如Python的requests库、Java的HttpClient等。
最佳实践是先用工具测试完成后,拼成要素报文传递即可。通常来说都是基于JSON的restful 和xml 的SOAP。

3.vue 组件分类和赋值方式,

Vue具体组件有很多种,常见的包括但不限于:按钮组件、输入框组件、选择器组件、日历组件、对话框组件、表格组件等。

赋值方式有多种,取决于组件的属性和父组件调用时的需求。以下是一些常见的赋值方式:

  1. 静态赋值:直接在组件标签内部使用属性进行赋值,例如:

    <my-component message="Hello"></my-component>
    

    在组件内部通过props属性接收该值:

    props: {
      message: String
    },
    
  2. 动态赋值:使用v-bind指令将数据动态绑定到组件的属性上,例如:

    <my-component :message="myMessage"></my-component>
    

    在组件内部通过props属性接收该值:

    props: {
      message: String
    },
    
  3. 传递整个对象:可以将一个对象作为属性传递给子组件,例如:

    <my-component :user="userInfo"></my-component>
    

    在组件内部通过props属性接收该对象:

    props: {
      user: Object
    },
    
  4. 通过事件传递数据:当需要从子组件向父组件传递数据时,可以使用自定义事件。子组件通过$emit方法触发事件并传递数据,父组件通过在子组件标签上使用v-on指令监听事件并获取数据,例如:
    在子组件中触发事件:

    this.$emit('update', data);
    

    在父组件中监听事件:

    <my-component @update="handleUpdate"></my-component>
    

    在父组件中定义事件处理方法:

    methods: {
      handleUpdate(data) {
        // 处理传递的数据
      }
    }
    

Vue具体组件有很多,下面列举一些常用的组件:

  1. 按钮组件(Button):用于创建按钮,可以设置不同的样式和功能。
  2. 输入框组件(Input):用于接收用户的输入,可以设置输入框的类型和验证规则。
  3. 列表组件(List):用于展示数据列表,可以进行分页、排序等操作。
  4. 菜单组件(Menu):用于创建导航菜单,可以设置菜单的样式和功能。
  5. 弹窗组件(Modal):用于显示弹窗,可以通过设置属性来控制弹窗的内容和样式。
  6. 图片组件(Image):用于显示图片,可以设置图片的大小和样式。
  7. 表格组件(Table):用于展示表格数据,可以设置表格的列和数据。
  8. 标签组件(Tag):用于创建标签,可以设置标签的样式和点击事件。
  9. 图表组件(Chart):用于绘制图表,可以根据数据生成柱状图、折线图等。

赋值使用案例:

假设有一个用户信息的组件,可以将用户信息传递给组件进行展示。

HTML模板:

<template>
  <div>
    <h2>{{ user.name }}</h2>
    <p>{{ user.age }}</p>
    <p>{{ user.email }}</p>
  </div>
</template>

Vue脚本:

<script>
export default {
  name: 'UserInfo',
  props: {
    user: {
      type: Object,
      required: true
    }
  }
}
</script>

使用组件并传递用户信息:

<template>
  <div>
    <user-info :user="userInfo"></user-info>
  </div>
</template>

<script>
import UserInfo from './UserInfo.vue'

export default {
  name: 'App',
  data() {
    return {
      userInfo: {
        name: '张三',
        age: 20,
        email: 'zhangsan@example.com'
      }
    }
  },
  components: {
    UserInfo
  }
}
</script>

在这个例子中,通过在父组件中定义一个userInfo对象,并将其传递给UserInfo组件的user属性,从而完成了赋值。
当然不用的组件的赋值方法不同,具体参看具体的API文档。

我们再对接接口的情况下,大部分不用研究的,基本三步走,复用(本质是熟悉),搜索,逻辑连调和验证。

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1372342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++调用matlab

C/C调用matlab matlab虽然可以生成C/C的程序&#xff0c;但其能力很有限&#xff0c;很多操作无法生成C/C程序&#xff0c;比如函数求解、优化、拟合等。为了解决这个问题&#xff0c;可以采用matlab和C/C联合编程的方式进行。使用matlab将关键操作打包成dll环境&#xff0c;再…

仿蓝奏云网盘 /file/list SQL注入漏洞复现

0x01 产品简介 仿蓝奏网盘是一种类似于百度网盘的文件存储和共享解决方案。它为用户提供了一个便捷的平台,可以上传、存储和分享各种类型的文件,方便用户在不同设备之间进行文件传输和访问。 0x02 漏洞概述 仿蓝奏云网盘 /file/list接口处存在SQL注入漏洞,登录后台的攻击…

代码随想录day20 开始二叉搜索树

654.最大二叉树 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构…

零基础学习数学建模——(二)数学建模的步骤

本篇博客将详细介绍数学建模的步骤。 文章目录 引例&#xff1a;年夜饭的准备第一步&#xff1a;模型准备第二步&#xff1a;模型假设第三步&#xff1a;模型建立第四步&#xff1a;模型求解第五步&#xff1a;结果分析第六步&#xff1a;模型检验第七步&#xff1a;模型应用及…

Kubernets(K8S)启动和运行01 快速入门

简介 Kubernetes is an open source orchestrator for deploying containerized applications. It was originally developed by Google, inspired by a decade of experience deploying scalable, reliable systems in containers via application-oriented APIs. Kubernete…

C语言基础语法跟练 day2

题源&#xff1a;牛客网 16、BoBo写了一个十六进制整数ABCDEF&#xff0c;他问KiKi对应的十进制整数是多少。 #include <stdio.h>int main() { //创建变量char arr[] "ABCDEF";int i;int sum0,c; //依次转换十六进制为十进制for(i0; arr[i]!\0; i){char b …

SENet实现遥感影像场景分类

今天我们分享SENet实现遥感影像场景分类。 数据集 本次实验我们使用的是NWPU-RESISC45 Dataset。NWPU Dataset 是一个遥感影像数据集&#xff0c;其中 NWPU-RESISC45 Dataset 是由西北工业大学创建的遥感图像场景分类可用基准&#xff0c;该数据集包含像素大小为 256*256 共计 …

CentOS本地部署SQL Server数据库无公网ip环境实现远程访问

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

23种设计模式精讲,配套23道编程题目 ,支持 C++、Java、Python、Go

关于设计模式的学习&#xff0c;大家应该还是看书或者看博客&#xff0c;但却没有一个边学边练的学习环境。 学完了一种设计模式 是不是应该去练一练&#xff1f; 所以卡码网 针对 23种设计&#xff0c;推出了 23道编程题目&#xff0c;来帮助大家练习设计模式&#xff0c;地…

oracle基本用户管理和权限分配

1.用户与模式的关系&#xff0c;一一对应的关系 2.创建与管理用户 2.1创建用户语法 CREATE user wdf IDENTIFIED by tiger--创建用户wdf,密码tiger DEFAULT tablespace users--用户的默认表空间 quota 10M on users;--在表空间的占用最大空间 注意&#xff1a;用户创建以后…

C练习——N个水手分椰子

题目&#xff1a; 五个水手在岛上发现一堆椰子&#xff0c;先由第1个水手把椰子分为等量的5堆&#xff0c;还剩下1个给了猴子&#xff0c;自己藏起1堆。然后&#xff0c;第2个水手把剩下的4堆混合后重新分为等量的5堆&#xff0c;还剩下1个给了猴子&#xff0c;自己藏起1堆。以…

2023-12-30 买卖股票的最佳时机 II和跳跃游戏以及跳跃游戏 II

122. 买卖股票的最佳时机 II 思路&#xff1a;关键点是每一次利用峰值来计算【画图好理解一点&#xff0c;就是计算陡坡的值】&#xff01;每一次累加和的最大! 或者可以这样理解&#xff0c;把利润划分为每天的&#xff0c;如假如第 0 天买入&#xff0c;第 3 天卖出&#xf…

Mybatis之逆向工程

目录 一、逆向工程概述 二、逆向工程的实现 1、创建一个java工程 2、 第一步&#xff1a;mapper生成配置文件&#xff1a; 3、第二步&#xff1a;使用java类生成mapper文件&#xff1a; 4、第三步&#xff1a;拷贝生成的mapper文件到工程中指定的目录中 5、第四步Mapper接…

控制el-table的列显示隐藏

控制el-table的列显示隐藏&#xff0c;一般的话可以通过循环来实现&#xff0c;但是假如业务及页面比较复杂的话&#xff0c;list数组循环并不好用。 在我们的页面中el-table-column是固定的&#xff0c;因为现在是对现有的进行维护和迭代更新。 对需要控制列显示隐藏的页面进…

C语言可变参数输入

本博文源于笔者正在学习的可变参数输入&#xff0c;可变参数是c语言函数中的一部分&#xff0c;下面本文就以一个很小的demo演示可变参数的编写 问题来源 想要用可变参数进行多个整数相加 方法源码 #include<stdio.h> #include<stdlib.h> #include<stdarg.h…

Git 实战指南:常用指令精要手册(持续更新)

&#x1f451;专栏内容&#xff1a;Git⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、Git 安装过程1、Windows 下安装2、Cent os 下安装3、Ubuntu 下安装 二、配置本地仓库1、 初始化 Git 仓库2、配置 name 和 e…

Java微服务系列之 ShardingSphere - ShardingSphere-JDBC

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项…

通过两台linux主机配置ssh实现互相免密登入

一 1.使用Xshell远程连接工工具生成公钥文件 2.生产密钥参数 3.生成公钥对 4.用户密钥信息 5.公钥注册 二 1.关闭服务端防火墙 ---systemctl stop firewalld 2.检查是否有/root/.ssh目录&#xff0c;没有则创建有则打开/root/.ssh/authorized_keys文件将密钥粘贴创建/ro…

麻省理工、Meta开源:无需人工标注,创新文生图模型

文生图领域一直面临着一个核心难题,就是有条件图像生成的效果&#xff0c;远超无条件的图像生成。有条件图像生成是指模型在生成图像的过程中,会额外使用类别、文本等辅助信息进行指导,这样可以更好的理解用户的文本意图&#xff0c;生成的图像质量也更高。 而无条件图像生成完…

【MYSQL】MYSQL 的学习教程(十一)之 MySQL 不同隔离级别,都使用了哪些锁

聊聊不同隔离级别下&#xff0c;都会使用哪些锁&#xff1f; 1. MySQL 锁机制 对于 MySQL 来说&#xff0c;如果只支持串行访问的话&#xff0c;那么其效率会非常低。因此&#xff0c;为了提高数据库的运行效率&#xff0c;MySQL 需要支持并发访问。而在并发访问的情况下&…