前段(vue)

news2024/12/23 6:14:46

目录

跨域是什么?

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.coloradmin.cn/o/2230400.html

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

相关文章

【elkb】索引生命周期管理

索引生命周期管理 Index lifecycle management(索引生命周期管理)是elasticsearch提供的一种用于自动管理索引的生命周期的功能。允许使用者定义索引的各个阶段,从创建至删除。并允许使用者在每个阶段定义索引需要执行的特定动作。这些动作包含索引创建&#xff0c…

基于SSM志愿者招募系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,志愿组织管理,组织信息管理,组织申请管理,志愿活动管理活动报名管理 用户账号功能包括:系统首页,个人中心,…

msys2更换国内源(多个文件(不是3个文件的版本!))

msys2更换国内源 起因排查答案如下mirrorlist.mingw64mirrorlist.ucrt64mirrorlist.mingw32mirrorlist.mingwmirrorlist.clang64mirrorlist.clang32mirrorlist.msys 不想看经过的直接跳到答案 起因 查了很多个教程大部分都是【打开MSYS2软件内的\etc\pacman.d\ 中3个文件&…

Spring Boot框架下的信息学科平台系统架构设计

3系统分析 3.1可行性分析 通过对本基于保密信息学科平台系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于保密信息学科平台系统采用Spring Boot框架&a…

基于Python可视化的热门微博数据分析系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的热…

ffplay 实现视频流中音频的延迟

ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中: -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒(即5秒&…

Iceoryx2:高性能进程间通信框架(中间件)

文章目录 0. 引言1. 主要改进2. Iceoryx2 的架构3. C示例代码3.1 发布者示例(publisher.cpp)3.2 订阅者示例(subscriber.cpp) 4. 机制比较5. 架构比较6. Iceoryx vs Iceoryx2参考资料 0. 引言 Iceoryx2 是一个基于 Rust 实现的开…

HTML+javaScript+CSS

文章目录 HTMLjavaScriptCSS属性区块表单层叠样式表选择器常用属性盒子模型相关属性浮动float定位(position) JS操作节点事件点击事件onclick()聚焦事件、失焦事件鼠标移入移出事件 定时任务延迟定时任务重复定时任务 判断哪个单选框被选中设置按钮失效冒…

跟着红队笔记学习 tmux:渗透测试中的多终端利器

内容预览 ≧∀≦ゞ 跟着红队笔记学习 tmux:渗透测试中的多终端利器进入 tmux 前的准备tmux 概念简介tmux 基础操作会话管理命令会话管理快捷键会话内和会话外命令的区别 tmux 窗口和面板管理新建和管理窗口分割窗口为面板切换面板面板放大与恢复调整面板大小关闭面板…

服务器数据恢复—DELL EqualLogic PS6100系列存储简介及如何收集故障信息?

DELL EqualLogic PS6100系列存储采用虚拟ISCSI SAN阵列,支持VMware、Solaris、Linux、Mac、HP-UX、AIX操作系统,提供全套企业级数据保护和管理功能,具有可扩展性和容错功能。DELL EqualLogic PS6100系列存储介绍: 1、上层应用基础…

【力扣】Go语言回溯算法详细实现与方法论提炼

文章目录 一、引言二、回溯算法的核心概念三、组合问题1. LeetCode 77. 组合2. LeetCode 216. 组合总和III3. LeetCode 17. 电话号码的字母组合4. LeetCode 39. 组合总和5. LeetCode 40. 组合总和 II小结 四、分割问题6. LeetCode 131. 分割回文串7. LeetCode 93. 复原IP地址小…

【深度学习】实验 — 动手实现 GPT【三】:LLM架构、LayerNorm、GELU激活函数

【深度学习】实验 — 动手实现 GPT【三】:LLM架构、LayerNorm、GELU激活函数 模型定义编码一个大型语言模型(LLM)架构 使用层归一化对激活值进行归一化LayerNorm代码实现scale和shift 实现带有 GELU 激活的前馈网络测试 模型定义 编码一个大…

基于springboot+vue车辆充电桩管理系统

基于springbootvue车辆充电桩管理系统 摘 要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,车辆充电桩管理系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,…

WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放

结合bv号 改成以下嵌入式代码&#xff08;自适应屏幕大小,取消自动播放&#xff09; <iframe style"width: 100%; aspect-ratio: 16/9;" src"//player.bilibili.com/player.html?isOutsidetrue&bvidBV13CSVYREpr&p1&autoplay0" scrolling…

BLG与T1谁会赢?python制作预测程序,结果显示,BLG将打败T1

决赛预测 2024英雄联盟全球总决赛 2024年英雄联盟全球总决赛&#xff0c;今天晚上&#xff08;2024年11月2日22点&#xff09;就要开始了&#xff01;今年的总决赛的队伍是BLG与T1。当然一些老的lol玩家&#xff0c;现在可能对于lol关注不多&#xff0c;并不清楚这两个队伍。…

AI-基本概念-向量、矩阵、张量

1 需求 需求&#xff1a;Tensor、NumPy 区别 需求&#xff1a;向量、矩阵、张量 区别 2 接口 3 示例 4 参考资料 【PyTorch】PyTorch基础知识——张量_pytorch张量-CSDN博客

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题&#xff0c;又叫蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff0c;以下是蒙提霍尔问题的一个著名的叙述&#xff0c;来自Craig F. Whitaker于1990年寄给《展示杂志》&#xff08;Parade Magazine&#xff09;玛丽莲沃斯莎凡特&#x…

Core日志 Nlog

资料 资料 资料 直接在NuGet里面搜索NLog.Web.AspNetCore&#xff0c;然后进行安装即可&#xff0c;

使用form表单的action提交并接收后端返回的消息

使用form表单的action提交表单是同步提交的方式&#xff0c;会跳转页面&#xff0c;所以无法获取后端返回来到消息。这样描述或许没有太大感觉&#xff0c;如果我要通过表单的方式上传文件&#xff0c;并接收后台返回来的响应数据&#xff1b;这样说是不是就感同深受了呢。 1.…

从障碍到流畅:提升远程团队沟通的最佳实践

远程工作模式带来了地理和时间上的灵活性&#xff0c;但同时也引入了一些沟通障碍。这些障碍可能导致信息传递不畅、合作效率低下&#xff0c;甚至影响团队成员之间的关系。解决远程团队的沟通障碍需要一系列综合策略的实施&#xff0c;包括利用高效的技术工具、建立明确的沟通…