前段(vue)

目录

跨域是什么?

SprinBoot跨域的三种解决方法

JavaScript 有 8 种数据类型,

金额的用什么类型。

前段 = ==  ===区别

JQuery使用$.ajax()实现异步请求

Vue 父子组件间的三种通信方式

Vue2 和 Vue3 存在多方面的区别。


跨域是什么?

跨域是指不同域名之间的相互访问,这是由浏览器的同源策略决定的,

是浏览器对JavaScript施加的安全措施,防止恶意文件破坏。

同源策略:同源策略是一种约定,它是浏览器最核心的也是最基本的安全策略,

如果缺少了同源策略,则浏览器的正常功能可能会受到影响。

所谓同源就是说协议 ,域名端口号完全一致,有一个不一致就会造成跨域问题

跨域原理:

跨域请求能正常发出去,服务端能接受到请求并正常返回结果,只是结果被拦截了。

跨域只存在于浏览器,不存在于其他平台,比如安卓/java/ios等平台。

之所以会发生跨域是因为受到了同源策略的限制,同源策略要求源相同才能进行正常通信,
即协议,域名,端口号都完全一致。

 

URL :统一资源定位符,它是www的统一资源定位标志,也就是我们说的网络地址。

它的一般格式为:协议类型://服务器地址:端口号/路径。

这也就是我们说的跨域中的域

SprinBoot跨域的三种解决方法

跨域技术CORS

 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

SpringBoot 就对Cross 做了很好的支持。目前有三种跨域方式。

使用 Spring Boot 框架时,最简单的是通过@CrossOrigin注解

在控制器类或单个方法上添加此注解,如果在类上添加,该类中的所有方法都适用此跨域规则。

例如,可以指定允许的源,像@CrossOrigin(origins = "http://example.com")

还能设置允许的请求方法和请求头。

如果需要全局配置跨域可以创建一个配置类,实现WebMvcConfigurer接口,

addCorsMappings方法中通过CorsConfiguration来设置跨域规则,

包括允许的源、请求方法、请求头、允许跨域的最大时长等,这种全局配置方式适用于整个应用程序的跨域管理

SpringBoot解决跨域的三种方式:

  1. @CrossOrgin注解 ; 一个类
  2. 全局配置Mvc,然后就是利用过滤器配置
  3. 有一种是利用servlet的过滤器实现

public class MyWebMvcConfig implements WebMvcConfigurer {

    @Override

    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/testCross/**")

                .allowedHeaders("*")

                .allowedMethods("*")

                .allowCredentials(true)

                .allowedOrigins("http://localhost:8093")

                .maxAge(2000);

    }

}

SpringBoot系列(八)分分钟学会Springboot多种解决跨域方式 - 全栈学习笔记 - 博客园

在 Java 的 Servlet 规范中,可以编写跨域过滤器。在过滤器的doFilter方法中,

手动修改响应头来实现跨域。

例如,设置Access - Control -Allow -Origin为允许的源地址,

Access - Control -Allow -Methods为允许的请求类型,

Access - Control -Allow -Headers为允许的请求头,

这种方式灵活性高,可根据具体的业务逻辑和请求特征来定制跨域策略

JavaScript 有 8 种数据类型,

分为基本数据类型和引用数据类型。

基本数据类型

  • 数值型(Number),用于表示数字,包含整数和浮点数
  • 字符串型(String),由字符组成,用于文本表示,需用引号包裹;
  • 布尔型(Boolean),只有 true 和 false 两个值,用于逻辑判断;
  • 未定义型(Undefined),当变量声明但未赋值时就是此类型;
  • 空值型(Null),表示空值;
  • 符号型(Symbol),是 ES6 引入的,用于创建唯一的标识符。

引用数据类型

  • 对象型(Object),是属性和方法的集合,

比如通过对象可以表示一个用户,包含姓名、年龄等属性和相关操作的方法;

  • 数组型(Array),是特殊的对象,用于存储多个元素,可以是不同的数据类型,元素通过索引访问。

金额的用什么类型

最常见的是 Number 类型,它可以存储整数和浮点数,适合表示金额数值,

不过要注意浮点数运算可能存在精度问题。

例如,0.1 + 0.2 在 JavaScript 中可能不会精确等于 0.3。为解决精度问题,

可以使用专门的第三方库,如 BigNumber.js

前段 = ==  ===区别

 = 赋值

 == 在判断的时候对数值做了 "隐式转换", 比如 0 ==false

 ===叫做严格相等,是指:左右两边不仅值要相等,类型也要相等

Vue版本2和3

JQuery使用$.ajax()实现异步请求

在这里,async默认的设置值为true,这种情况为异步方式

  $.ajax({

        type: "POST",

        url: "/user/getLoginUser",

        async: true,

        dataType: "json",

        contentType: "application/json; charset=UTF-8",

        data: JSON.stringify(params),

        success: function (result) {

            //绑定数据

            $("#td_userId").html(result.userId);

        }

    });

Vue打包

Vue CLI 是一个基于 Webpack 构建的官方脚手架工具。

在开发好 Vue 项目后,通过在命令行中运行npm run build

(如果是基于 Vue CLI 构建的项目,此命令在 package.json 中有配置),

它会将项目中的代码按照 Webpack 的配置规则进行处理,包括压缩代码、处理样式、拆分代码块等操作,

最后生成适合生产环境部署的静态文件,存放在dist目录下

Vite 是一个新兴的前端构建工具,用于替代传统的 Webpack。

在 Vue 项目中使用 Vite 打包时,同样在命令行中执行相应的打包命令

(例如在 Vite 构建的项目中,一般使用npm run build),

Vite 会快速地将项目代码进行转换、优化和打包,它的优势在于开发阶段的快速启动和热更新,

打包时也能够高效地处理模块,生成部署文件。

Vue 父子组件间的三种通信方式

原文链接:[Vue框架学习笔记]父子组件间的三种通信方式(有实例,速来!)_我有一种父子组建是如何通信的-CSDN博客

Vue2 和 Vue3 存在多方面的区别。

从性能上看,Vue3 在虚拟 DOM 的更新性能上有优化,渲染速度更快

其采用了静态标记和基于块的编译,在更新时能更精准地识别出需要重新渲染的组件,

减少不必要的更新操作,而 Vue2 在大型项目中渲染效率相对较低。

在 API 方面,Vue3 有组合式 API,像 setup 函数,可以将逻辑相关的代码放在一起,

使代码组织更清晰,更易于复用和维护。

Vue2 主要使用选项式 API,数据、方法等按固定选项分类,在复杂组件中代码可读性会变差。

在响应式原理上,Vue3 使用 Proxy 替代了 Vue2 的 Object.defineProperty。

Proxy 在处理复杂对象和数组时更灵活,能直接监听整个对象,

而 Object.defineProperty 在某些场景下有局限性,比如无法监听对象属性的新增和删除。

在组件方面,Vue3 支持多个根元素,在模板语法上更加灵活,

Vue2 的模板中要求必须有一个根元素。Vue3 对 TypeScript 的支持也更好,

提供了更方便的类型定义和推导,有助于提高代码质量,

这在大型项目和团队协作中很重要,而 Vue2 对 TypeScript 的支持相对较弱。

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

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

相关文章

基于SpringBoot+Vue实现智能停车收费系统

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

私有化视频平台EasyCVR海康大华宇视视频平台视频诊断技术是如何实时监测视频质量的?

在现代视频监控系统中,确保视频流的质量和稳定性至关重要。随着技术的进步,视频诊断技术已经成为实时监测视频质量的关键工具。这种技术通过智能分析算法对视频流进行实时评估和处理,能够自动识别视频中的各种质量问题,并给出相应…

Linux云计算 |【第五阶段】CLOUD-DAY10

主要内容: 部署Dashboard、部署Prometheus、部署HPA集群 一、Dashboard介绍 Dashboard是基于网页的Kubernetes用户界面,可以使用Dashboard将容器应用部署到Kubernetes集群中,也可以对容器应用排错,还能管理集群资源。可以使用Da…

无人机避障——4D毫米波雷达Octomap从点云建立三维栅格地图

Octomap安装 sudo apt-get install ros-melodic-octomap-ros sudo apt-get install ros-melodic-octomap-msgs sudo apt-get install ros-melodic-octomap-server sudo apt-get install ros-melodic-octomap-rviz-plugins # map_server安装 sudo apt-get install ros-melodic-…

【GIN】go-gin 中 validator 验证功能

文章目录 前言一、基础用法二、常用字段说明常用字段说明1. required2. len3. min 和 max4. gte 和 lte 、 gt 和 lt 、ne5. oneof6. email7. url 三、示例代码运行效果 总结 前言 在 Go 中使用 Gin 框架时,BindJSON 可以将 JSON 请求体中的数据绑定到结构体上&…

使用Jupyter Notebook进行数据科学项目

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Jupyter Notebook进行数据科学项目 Jupyter Notebook 简介 安装 Jupyter Notebook 创建和管理 Notebook 编写和运行代码 示例…

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作,这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞:必须保证…

一键式配置适合 Web 开发的Ubuntu系统

大家好,今天给大家分享一个专为Ubuntu设计的Web开发者配置方案Omakub。 项目介绍 Omakub是一个为开发者打造的、经过精心配置的 Ubuntu 环境项目,由 Ruby on Rails 的创造者 David Heinemeier Hansson(DHH)发起。目的是为了简化他…

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器,主要有反向代理、负载均衡的功能。 能够支撑5万的并发量,运行时内存和CPU占用低,配置简单,运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…

数据库 二

一.数据认识 1.关系型 表与表的关系&#xff1a;核心表 mysql/oracle、SQLServer(微软) SQL 2.非关系型 redis--缓存数据库Map<k,v> NO-SQL&#xff1a;not only sql 二.关系型数据库(R) 1.客户端、数据库服务 2.库(database) CREATE DATABASE xxx_db;//创建库 DR…

开源OCR免费助力法律文档数字化,提升文档管理效率

一、在法律行业&#xff0c;每天需要处理大量纸质文件&#xff0c;从合同到判决书&#xff0c;手动录入不仅费时&#xff0c;还容易出错。为解决这一问题推出了一款免费开源的OCR智能识别平台&#xff0c;通过先进的光学字符识别&#xff08;OCR&#xff09;技术&#xff0c;将…

零售EDI:HornBach EDI 项目案例

HornBach 是一家总部位于德国的家居和建筑材料零售商&#xff0c;成立于1968年。它以大型仓储式商店而闻名&#xff0c;提供广泛的产品&#xff0c;包括建筑材料、园艺、家居装饰和工具等。 近期我们帮助HornBach的供应商W公司成功实现了与HornBach的EDI直连&#xff0c;除了满…

jupyter如何切换内核

01、写在前面 Jupyter是一个开源的交互式笔记本工具&#xff0c;支持多种编程语言&#xff0c;包括Python、R、Julia 等。它最初是作为IPython 笔记本的一个分支而开发的&#xff0c;后来逐渐发展成为一个独立的项目。Jupyter的名字来源于它支持的三种编程语言&#xff1a;Juli…

STM32ZET6-USART使用

一、原理说明 STM32自带通讯接口 通讯目的 通信方式&#xff1a; 全双工&#xff1a;通信时可以双方同时通信。 半双工&#xff1a;通信时同一时间只能一个设备发送数据&#xff0c;其他设备接收。 单工&#xff1a;只能一个设备发送到另一个设备&#xff0c;例如USART只有…

动态库实现lua网络请求GET, POST, 下载文件

DLL需要使用的网络封装 WinHttp异步实现GET, POST, 多线程下载文件_webclient post下载文件-CSDN博客文章浏览阅读726次。基于WinHttp封装, 实现异步多线程文件下载, GET请求, POST请求_webclient post下载文件https://blog.csdn.net/Flame_Cyclone/article/details/142644088…

牛客周赛65(C++实现)

比赛链接&#xff1a;牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 文章目录 1.超市1.1 题目描述1.2 思路1.3 代码 2. 雨幕2.1 题目描述2.2 思路2.3 代码 3.闺蜜3.1 题目描述3.2 思路3.3 代码 4. 医生4.1 题目描述4.2 思路4.3 代码 1.超市 1.1 题目描述 …

机器人技术革新:人工智能的强力驱动

内容概要 在当今世界&#xff0c;机器人技术与人工智能的结合正如星星与大海&#xff0c;彼此辉映。随着科技的不断进步&#xff0c;人工智能不仅仅是为机器人赋予了“聪明的大脑”&#xff0c;更是推动了整个行业的快速发展。回顾机器人技术的发展历程&#xff0c;我们会发现…

使用PostgreSQL进行高效数据管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

为开源 AI 模型引入激励机制?解读加密 AI 协议 Sentient 的大模型代币化解决方案

撰文&#xff1a;Shlok Khemani 编译&#xff1a;Glendon&#xff0c;Techub News 古时候&#xff0c;中国人深信「阴阳」的概念——宇宙的每一个方面都蕴含着内在的二元性&#xff0c;这两种相反的力量不断地相互联系&#xff0c;形成一个统一的整体。就好比女性代表「阴」&a…

Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--YOLOV5工程编译移植到开发板测试--(5)

专栏链接如下&#xff1a; Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--安装Ubuntu18.04--&#xff08;1&#xff09; Hi3516/Hi3519DV500移植YOLOV5、YOLOV6、YOLOV7、YOLOV8开发环境搭建--安装开发环境AMCT、依赖包等--&#xff08;2&#xff09;…