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

关于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文档。

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

参考资料和推荐阅读

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣最热一百题——只出现一次的数字

这个合集已经很久没有更新了&#xff0c;今天来更新更新~~~ 目录 力扣题号 题目 题目描述 示例 提示 题解 Java解法一&#xff1a;Map集合 Java解法二&#xff1a;位运算 C位运算代码 力扣题号 136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 下述题…

腾讯云对象存储COS计算文件的大小

properties配置类 TencentCos.APPIDxxxxx TencentCos.SecretIdxxxxxxx TencentCos.SecretKeyxxxxxx TencentCos.testBucketxxxxxx TencentCos.CosPathhttps://xxxxxxxx.cos.ap-chengdu.myqcloud.com TencentCos.regionap-chengdu读取properties中的配置 import lombok.AllArg…

Thingsbaord采用redis缓存(自用)

在CentOS系统上&#xff0c;您可以通过以下步骤使用yum安装Redis&#xff1a; 添加EPEL仓库&#xff1a; 首先&#xff0c;需要添加EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;仓库&#xff0c;因为Redis可能不在默认的CentOS仓库中。使用以下命令添加EP…

盘活存量GPU资源 破局高校算力不足窘境

“凭啥做大模型的优先分配算力&#xff1f;人家1个人4块A800&#xff0c;我们10个人用2块3090&#xff01;这日子没法过了&#xff01;”听着团队成员们的吐槽&#xff0c;某国内顶尖高校非大模型团队带队的博士老W也颇为无奈&#xff1a;“我们虽然不是做大模型的&#xff0c;…

在微信公众号上怎么实现拼团功能

拼团魅力&#xff1a;微信公众号上的拼团功能如何助力营销 一、引言 在这个数字化时代&#xff0c;微信公众号成为了企业与消费者互动的重要平台。而拼团功能作为微信营销的一大利器&#xff0c;为企业带来了巨大的商业价值。那么&#xff0c;如何在微信公众号上实现拼团功能&…

将WebGL打包的unity项目部署至Vue中

一、webgl打包 创建一个空项目&#xff08;或者直接使用现成的项目都可以&#xff09;这里以该空项目为例子 注意&#xff1a; 如果你的unity项目中有文字&#xff0c;不需要使用unity默认的字体&#xff0c;需要更改它的字体&#xff0c;否则在最后生成的页面中会显示不出来…

Modelsim仿真软件注册

仅供学生学习 解决问题&#xff1a; 注意&#xff1a;操作之前先关闭Modelsim软件 1&#xff09;下载modelsim_crack.zip&#xff0c;解压。 解压后的文件列表如下&#xff1a; 2&#xff09;进入Modelsim的软件安装目录&#xff08;我的电脑的安装目录是D:\modeltech64_10.…

有哪些好用的防蓝光护眼台灯?防蓝光护眼灯品牌排行揭晓

对于大多数人来说&#xff0c;护眼灯已经不是什么新鲜概念。为什么要买护眼灯&#xff1f;相信很多人的回答都是“为了孩子”。为了保护儿童视力健康&#xff0c;越来越多家长选择为孩子购买一台护眼灯&#xff0c;也造就了这个相当具有中国特色的庞大市场。很多家长不放心台灯…

2023 年度总结—总结我今年的AI之路-多项目实战经验谈AI发展前景

各位好&#xff0c;我是难忘&#xff0c;对人工智能方向有所研究&#xff0c;今年一年除了开发了几个软件项目之外的时间&#xff0c;基本都用到了学习研究AI上&#xff0c;最近几个月也是产出了几款AI领域的爆火文章&#xff0c;也把自己学习AI的笔记写了一个专栏&#xff0c;…

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…

2024年了,Layui再战三年有问题不?

v2.9.3 2023-12-31 2023 收官。 form 优化 input 组件圆角时后缀存在方框的问题 #1467 bxjt123优化 select 搜索面板打开逻辑&#xff0c;以适配文字直接粘贴触发搜索的情况 #1498 Sight-wcgtable 修复非常规列设置 field 表头选项时&#xff0c;导出 excel 出现合计行错位的…

mysql定时备份shell脚本和还原

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言数据库备份分类mysqldump命令备份计划1.每日备份&#xff0c;保留30天备份文件2.每月1号备份&#xff0c;保留12个月备份文件 定时调度还原总结 前言 数据库备…

自适应批量生成二维码源码系统:电脑+手机端自适应 支持任何类型批量生成二维码 附带完整的搭建教程

在当今数字化的时代&#xff0c;二维码已经成为了我们日常生活和工作中的重要组成部分。无论是分享链接、添加好友&#xff0c;还是支付购物&#xff0c;二维码都以其便捷性受到了广泛的欢迎。下面&#xff0c;罗峰就来给大家分享一款自适应批量生成二维码源码系统&#xff0c;…

1.11寒假集训

A: 解题思路&#xff1a; 这题看示例不难发现&#xff0c;答案就是a * b的每一项的和&#xff0c;例如111 111就是111*&#xff08;1 1 1&#xff09; 333,知道后此题就迎刃而解了 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {in…

MFC 记录字段交换(RFX)学习

MFC ODBC 数据库类可自动移动数据源与记录集对象之间的数据。 从 CRecordset 派生类且不使用批量取行时,数据将通过记录字段交换 (RFX) 机制进行传输。 如果已在派生的 CRecordset 类中实现批量取行,则此框架将使用批量记录字段交换(批量 RFX)机制来传输数据。 RFX 类似于…

Farad capacitor法拉电容优点及缺点

Farad capacitor 法拉电容又称Electrical Double-Layer Capacitor双电层电容器、Gold capacitor黄金电容、Super capacitor 超级电容器&#xff0c;是一种化学元件。Super capacitor 超级电容器通过极化电解质来储能&#xff0c;但不发生化学反应&#xff0c;而且储能过程是可逆…

智邦国际ERP系统 SQL注入漏洞

产品介绍 智邦国际ERP系统是一款功能丰富、灵活可定制的企业管理软件&#xff0c;能够帮助企业实现资源优化、流程优化和业务增长&#xff0c;具有高度的灵活性和可定制性&#xff0c;可以根据不同企业的需求进行个性化配置和拓展。 漏洞描述 智邦国际ERP系统 GetPersonalSe…

CRM系统进行市场营销,这些功能可以派上用场。

现如今的企业想要做好营销&#xff0c;不仅仅依赖于一句玄之又玄的slogan亦或是电子邮件的狂轰乱炸。要想做好市场活动营销需要一个前提——那就是CRM管理系统发挥作用的地方。但CRM系统关于营销的功能太多了——对于不太了解的人来说很容易不知所措。那么&#xff0c;CRM系统做…

Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客&#xff0c;是我最近看到的为数不多的保姆级别的教学博客&#xff0c;建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客 本篇主要是基于这篇博客结合自己配置的过程中一些注…

STM32——高级定时器输出比较模式实验

1高级定时器输出比较模式实验 1.1高级定时器输出比较模式实验原理 1.2高级定时器输出比较模式实验实验配置步骤 1&#xff0c;配置定时器基础工作参数 HAL_TIM_OC_Init() 2&#xff0c;定时器PWM输出MSP初始化 HAL_TIM_OC_MspInit() 配置NVIC、CLOCK、GPIO等 3&#xff0c;配…