前端知识点杂记

本文章用于记录前端学习中遇到的琐碎问题及解决方法,欢迎大家一起学习补充~

前端如何获取UUID发送至后端?

1. 命令行下载uuid库

npm install uuid

2. 工程导入uuid库

import { v4 as uuidv4 } from "uuid";

3. 使用方法生成uuid实例

const UUID = uuidv4();

4. 后端接收

public class Test{@JsonProperty("UUID") // 声明与JSON对象对应的字段名private String uuid;
}

MyBatis无法将java.util.UUID类与数据库的varchar类实现映射,因此建议使用String类来接收uuid 

前端如何获取TimeStamp?对应Java的哪一类?

// 时间戳
const orderTime = +new Date();

可以使用Long类来接收时间戳,数据库的时间戳字段也是用long类型进行映射即可

是对象,也是Map

js中不止Map()类实例可以实现key/value的映射,直接使用Object对象也可以实现key/value映射。

// 计算属性,根据UUID分组订单
const groupedOrders = computed(() => {const groups = {};props.shopList.forEach((order) => {if (!groups[order.UUID]) {groups[order.UUID] = [];}groups[order.UUID].push(order);});return groups;
});

如这个函数中,gruops作为对象,可以直接使用[keyName]访问对应的value,且可以对key对应的value进行赋值等操作。

要删除对应的key/value使用delete关键字即可:

delete classifiedList.value[UUID];

想要获取classifiedList的长度?可以曲线救国:

Object.entries(obj) 
// 返回一个包含对象所有可枚举属性的键值对数组,所以这个方法会返回键值对的总数。

 使用Object.entries获取键值对数组,键值对数组的长度即为classifiedList的长度。

Object.keys(obj)

  或者使用Object.keys()获取键的数组,键数组的长度即为classifiedList的长度 

监听窗口被关闭事件

created(async () => {window.addEventListener('beforeunload',()=>{//... 销毁前逻辑})
})

window对象监听'beforeunload'事件即可。 

参考文章:vue 监听浏览器关闭或刷新事件_vue监听浏览器关闭-CSDN博客

el-table中如何获取每行的对象?

v-slot:

在Vue.js中,v-slot指令用于定义具名插槽或默认插槽,并可以用来接收作用域插槽的数据。当你看到v-slot="scope"这样的语法,它通常指的是一个作用域插槽(Scoped Slot)的用法,其中scope是一个变量名,用于访问父组件传递给插槽的数据。

作用域插槽允许子组件向父组件传递数据,并在父组件的模板中控制这些数据的渲染方式。scope对象包含了子组件传递给插槽的所有属性和方法,这些属性和方法可以在插槽的内容中。

<el-table :data="users" border style="width: 100%" />

如向table表格中传入users数组,要访问表格每行对应的user对象,则可以使用v-slot插槽:

<template v-slot="scope"><el-button type="danger" @click="deleteUser(scope)">删除</el-button>
</template>

scope对象中包含了如下信息:

$index: 2
cellIndex: 3
column: {order: '', id: 'el-table_8_column_32', type: 'default', property: undefined, align: 'is-center', …}
expanded: false
row: Proxy(Object) {userPhone: 'admin', userPassword: 'admin', userName: 'admin', userType: 'admin'}
store: {ns: {…}, assertRowKey: ƒ, updateColumns: ƒ, scheduleLayout: ƒ, isSelected: ƒ, …}
_self: {uid: 369, vnode: {…}, type: {…}, parent: {…}, appContext: {…}, …}
[[Prototype]]: Object

如可以通过scope.row访问每行对应的user对象,通过scope.$index访问每行对象对应的数组index 

JSON参数后端接收的严格要求:

后端若想接收JSON数据,首先需要进行相关配置,同时只能使用@RequestBody和对象来承接JSON,不能自动映射,也不能使用@RequestParam进行映射。

vue的父子组件之间进行通讯?

需求:点击事件弹出的对话框为一个dialog.vue子组件。父组件向子组件传入visible=true的属性值时,对话框可正常弹出。但是父组件传递给子组件的属性值是单向数据流,子组件中不能直接修改父组件visible=false以关闭对话框。如何解决?

解决:

如果想在用户点击取消按钮时修改 visible 的值以关闭对话框,你需要通过触发一个事件来通知父组件修改 visible 的值,因为 Vue 的 props 是单向数据流,子组件不应该直接修改传入的 props。

子组件中加入代码:

<template>  <!-- ...(其他代码保持不变)... -->  <template #footer>  <div>  <!-- 修改取消按钮的事件处理 -->  <el-button @click="handleCancel">取消</el-button>  </div>  </template>   
</template>  <script setup>  
import { defineEmits } from 'vue';  const emit = defineEmits(['update:visible']);  function handleCancel() {  // 触发自定义事件,通知父组件关闭对话框  emit('update:visible', false);  
}  
</script>

父组件中加入代码:

<modyfiy-dialog :visible="visible"  @update:visible="visible = $event" />

解析:

defineEmits 是 Vue 3 中用于在 <script setup> 模式下声明组件可以发出哪些事件的函数。这有助于提供更好的类型检查和更清晰的组件接口。在 <script setup> 中使用,通常位于文件的顶部。它接受一个字符串数组或一个对象,用于定义组件可以发出的事件。

update:visible 的命名含义是:子组件希望通过触发update这个事件来更新父组件中名为 visible 的 prop 值。update:visible 这种命名方式在 Vue 中用于实现父子组件之间的双向数据绑定,允许子组件更新父组件中的 prop 值。虽然 Vue 3 对 .sync 的处理方式有所改变,但这种命名约定仍然被保留并用于相同的目的。

共有两种声明方式:

1. 字符串数组定义

const emit = defineEmits(['update:visible']);

2. 对象方式定义

const emit = defineEmits({  'update:visible': (value) => typeof value === 'boolean',  
});

这种方式更加详细和灵活。它不仅声明了事件,还为每个事件提供了一个验证函数。在这个例子中,'update:visible' 事件的验证函数检查传递的值是否为布尔类型。如果尝试触发该事件并传递一个非布尔值,Vue 将在控制台中发出警告,指出参数不符合验证函数的要求。

emit 函数用于在 Vue 3 组件中触发自定义事件并传递必要的参数。emit 允许子组件向父组件发送消息,这是实现父子组件通信的一种重要方式。

function handleCancel() {  emit('update:visible', false);  
}

调用handleCancel函数便可以利用emit触发 'update:visible' 事件,并传递 false 作为参数。

@update:visible="visible = $event"

这段代码 @update:visible="visible = $event" 表示监听一个名为 update:visible 的事件,并在该事件被触发时执行一段代码。具体来说, 当 update:visible 事件被触发时,父组件会执行 visible = $event 这个表达式。这里,visible 是父组件中的一个响应式数据属性,而 $event 包含了子组件触发事件时传递的值。这个表达式的执行会将父组件中的 visible 属性的值更新为子组件传递过来的新值。

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

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

相关文章

付费工具逻辑

1.付费推广目的&#xff1a; 传播信息心理暗示&#xff1b;扩大销售&#xff0c;指导消费&#xff1b;树立形象&#xff0c;塑道品牌&#xff1b; 2.付费和免费广告&#xff1a; 付费主要为了增加曝光&#xff1b;免费广告一般比付费广告转化率高&#xff1b; 3.平台广告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌浏览器开启Gemini Nano模型

前提 确保您的操作系统语言设置为英语(美国) 可能还需要将 Chrome 浏览器的语言更改为英语(美国)。 下载dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:确认您的版本高于 127.0.6512.0。 其中一个Chrome版本不行就切换另外一个版本 绕过性能检查 Tab输入: …

中国美业元宇宙-探索美容行业的未来

随着科技的不断进步和数字化转型的深入&#xff0c;元宇宙作为一种全新的虚拟现实交互平台&#xff0c;正逐渐成为推动多个行业革新的重要力量。在这种背景下&#xff0c;中国美业也在积极拥抱元宇宙&#xff0c;希望通过这一新兴技术为传统美容行业带来创新与发展。 #### 中国…

结构体相关习题的补充

结构体相关习题的补充 题目1&#xff1a; 如有以下代码&#xff1a; struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是&#xff1a;( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

正邦科技(day4)

烧录 一、烧录固件二、 通讯模块升级1&#xff1a;USB的方式升级固件2&#xff1a;通过mqtt的方式升级固件3&#xff1a;切换环境 三、 烧录WiFi1&#xff1a;短接2&#xff1a;烧录脚本 设备注意事项&#xff1a; 第一种方式&#xff1a;通信模组和MCU都可以统一烧录BoodLoade…

Oracle Hint /*+APPEND*/插入性能总结

oracle append用法 Oracle中的APPEND用法主要用于提高数据插入的效率。 基本用法&#xff1a;在使用了APPEND选项后&#xff0c;插入数据会直接加到表的最后面&#xff0c;而不会在表的空闲块中插入数据。这种做法不需要寻找freelist中的free block&#xff0c;从而避免了在…

【计算机毕设】基于Spring Boot的课程作业管理系统 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 课程作业管理系统旨在为教师和学生提供一个便捷的平台&#xff0c;用于发布、提交和评定课程作业。本系统旨在提高作业管理的效率&#xff0c;促进教…

Golang反射

文章目录 基本介绍reflect包reflect.Typereflect.Valuereflect.Kind具体类型、空接口与reflect.Value的相互转换 反射应用场景修改变量的值访问结构体的字段信息调用变量所绑定的方法实现函数适配器创建任意类型的变量 基本介绍 基本介绍 在Go中&#xff0c;反射&#xff08;re…

错误 0x80070570:文件或目录损坏且无法读取/无法访问[拒绝访问]-解决方法

1.起因&#xff1a;在挪动&#xff35;盘文件时&#xff0c;出现无法移动的报错提示&#xff1a; and无法访问[拒绝访问]: 2.原因&#xff3b;大多是胡乱拔出&#xff35;盘&#xff3d; &#xff3b;来自0x80070570 文件或目录损坏且无法读取 CHKDSK 修复方法-CSDN博客&#…

iOS AVFoundation 音视频源码分享

引言 在现代移动开发中&#xff0c;音视频处理是一个不可忽视的重要领域。iOS 提供了强大的 AVFoundation 框架&#xff0c;使开发者能够轻松实现音视频录制、播放、编辑等功能。无论是创建高效的视频播放器&#xff0c;还是实现复杂的音频处理&#xff0c;AVFoundation 都能提…

Leecode---买卖股票最大利润问题

121—题目&#xff08;只能买卖一次&#xff09;&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所…

python-pytorch编写transformer模型实现问答0.5.00--训练和预测

python-pytorch编写transformer模型实现问答0.5.00--训练和预测 背景代码训练预测效果背景 代码写不了这么长,接上一篇 https://blog.csdn.net/m0_60688978/article/details/139360270 代码 # 定义解码器类 n_layers = 6 # 设置 Decoder 的层数 class Decoder(nn.Module)…

【JavaEE进阶】——带你详细了解Spring日志以及配置日志

目录 &#x1f6a9;Spring日志的认识 &#x1f6a9;Spring日志的作用 &#x1f6a9;观察日志 &#x1f6a9;使用日志 &#x1f388;在程序中得到日志对象 &#x1f388;使⽤⽇志对象输出要打印的内容 &#x1f6a9;日志框架的介绍 &#x1f388;门面模式(外观模式&…

Unity实现简单的第一人称控制

先看效果 实现方式 1.首先创建一个脚本 2.编辑脚本内容 付上脚本代码 private float RotationX 0;public float speed 2f;//移动速度// Use this for initializationvoid Start(){Cursor.lockState CursorLockMode.Locked;//锁定鼠标到中心点Cursor.visible false;//隐藏鼠…

(CPU/GPU)粒子继承贴图颜色发射

GetRandomInfo节点(复制贴进scratch pad Scripts) Begin Object Class/Script/NiagaraEditor.NiagaraClipboardContent Name"NiagaraClipboardContent_22" ExportPath/Script/NiagaraEditor.NiagaraClipboardContent"/Engine/Transient.NiagaraClipboardConten…

uni-app+php 生成微信二维码 分销海报

主要代码如下&#xff0c;可直接复制调试参数&#xff1a; //查询当前用户是否有分销海报public function user_poster(){$this->checkAuth();//查询会员信息$user $this->getUserInfoById($this->user_id);if(!empty($user[distribution_img])){$result[data] $use…

深入解析力扣170题:两数之和 III - 数据结构设计(哈希表与双指针法详解及模拟面试问答)

在本篇文章中&#xff0c;我们将详细解读力扣第170题“两数之和 III - 数据结构设计”。通过学习本篇文章&#xff0c;读者将掌握如何设计一个数据结构来支持两种操作&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释和ASCII图解&#xff0c;以便…

头歌数据结构与算法课程设计易 - 青蛙跳台阶

从前有一只青蛙想跳台阶去等峰&#xff0c;若该青蛙一次可以跳上1级台阶、也可以跳上2级、还可以跳3级。那么改青蛙从第0级台阶出发&#xff0c;在跳上第n级台阶且在第m级台阶停留过时有多少种跳法。 输入描述&#xff1a; 第一行两个正整数&#xff0c;n和m m<n 输出描述&a…

kubernetes镜像下载页,离线安装k8s的资源

kubernetes-apt-pool安装包下载_开源镜像站-阿里云 (aliyun.com) 【Kubernetes】Kubernetes各大版本的最新版本下载地址_kubet软件下载-CSDN博客