【每日阅读】前端进阶知识点(一)

news2024/11/15 22:25:53

如何更改网页中语言属性值

声明当前语言类 html标签更改属性值 lang属性中不区分大小写 en-us en-US 一致 具体可使用
window,document.querySelector(“html”)?.setAttribute(“lang”,newValue);


qs库

qs是一个流行的查询参数序列化和解析库。可以将一个普通的object序列化成一个查询字符串,或者反过来将一个查询字符串解析成一个object,帮助我们查询字符串解析和序列化字符串。

方法:qs.parse()和qs.stringify()

qs.parse()是将URL解析成对象的形式

   const str = "username='admin'&password='admin'" 
    console.log(qs.parse(str)) // Object { username: "admin", password: "admin" }

qs.stringify()是将对象 序列化成URL的形式,以&进行拼接

   qs.stringify({username:'admin', password:'admin'})
    //username=admin&password=admin

CSS文件中第一## 标题行@charset “utf-8”;的作用

@charset“utf-8”:
告诉该文件浏览器该css文件使用的字符编码集是utf-8
这个指令必须写到第一行,如果没有中文可以不写


ts中的“ as”关键字有什么作用
ts中as代表断言 (path as string)


vue2生命周期

创建阶段 beforeCreate、created
挂载渲染页面阶段 beforeMount、mounted
更新阶段 beforeUpdate、updated
卸载阶段 beforeDestory、destoryed

在vue3中,新增了一个setup生命周期函数,setup执行的时机是在beforeCreate生命函数之前执行,因此在这个函数中是不能通过this来获取实例的;同时为了命名的统一,beforeUnmount,destroyed改名为unmounted,

setup() :开始创建组件之前,在beforeCreate和created之前执行。创建的是data和method
onBeforeMount() : 组件挂载到节点上之前执行的函数。
onMounted() : 组件挂载完成后执行的函数。
onBeforeUpdate(): 组件更新之前执行的函数。
onUpdated(): 组件更新完成之后执行的函数。
onBeforeUnmount(): 组件卸载之前执行的函数。
onUnmounted(): 组件卸载完成后执行的函数
onActivated(): 被包含在中的组件,会多出两个生命周期钩子函数。被激活时执行。
onDeactivated(): 比如从 A 组件,切换到 B 组件,A 组件消失时执行。
onErrorCaptured(): 当捕获一个来自子孙组件的异常时激活钩子函数。

区别
Vue2--------------vue3 beforeCreate -> setup() created ->
setup() beforeMount -> onBeforeMount mounted -> onMounted
beforeUpdate -> onBeforeUpdate updated -> onUpdated
beforeDestroy -> onBeforeUnmount destroyed -> onUnmounted
activated -> onActivated deactivated -> onDeactivated
errorCaptured -> onErrorCaptured


JS中三个点
在这里插入图片描述

常见状态码

1xx : 消息,这一类型的状态码,代表请求已被接受,需要继续处理。但是一般服务器禁止向客户端发送此类状态码;

2xx : 成功,这一类型的状态码,代表请求已成功被服务器接收、理解、并接受;

3xx : 重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求;

4xx : 请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理;

5xx : 服务器错误,这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理


Content-Type

Content-type是Http的实体首部字段,在request的请求行(或response的状态码)之后,也是首部的一部分。用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在。

常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式

以application开头的媒体格式类型:

application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)


Blob 是什么
Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在 JavaScript 中 Blob 类型的对象表示不可变的类似文件对象的原始数据。

var aBlob = new Blob(blobParts, options);

相关的参数说明如下:·

blobParts:它是一个由 ArrayBuffer,ArrayBufferView,Blob,DOMString 等对象构成的数组。DOMStrings 会被编码为 UTF-8。
options:一个可选的对象,包含以下两个属性:
type —— 默认值为 “”,它代表了将会被放入到 blob 中的数组内容的 MIME 类型。
endings —— 默认值为 “transparent”,用于指定包含行结束符 \n 的字符串如何被写入。它是以下两个值中的一个:“native”,代表行结束符会被更改为适合宿主操作系统文件系统的换行符,或者 “transparent”,代表会保持 blob 中保存的结束符不变。

 var blob = new Blob(["Hello World!"],{type:"text/plain"});

案例1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- <a href="" id="downloadBtn">下载</a> -->
    <input type="file" id="input" onchange="handleFiles(this.files)">
</body>
<script>
    var blob = new Blob(["Hello World!"],{type:"text/plain"});
    function handleFiles(files){
        //通过FileReader.readAsDataURL(file)可以获取一段data:base64的字符串
        let url = URL.createObjectURL(files[0])//获取当前文件的一个内存URL
        let image = new Image()
        console.log(image ,'ok')
        image.src = url;
        var link = document.createElement("a");
        link.innerHTML = '下载';
        link.href = url;
        document.body.appendChild(image)
        document.body.appendChild(link);
    }
  </script>
</html>

案例2

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="downloadBtn">文件下载</button>
  </body>
  <script>
    const download = (fileName, blob) => {
      const link = document.createElement('a')

      link.href = URL.createObjectURL(blob)

      link.download = fileName

      link.click()

      link.remove()

      URL.revokeObjectURL(link.href)
    }

    const downloadBtn = document.querySelector('#downloadBtn')

    downloadBtn.addEventListener('click', (event) => {
      const fileName = 'blob.txt'

      const myBlob = new Blob(['一文彻底掌握 Blob Web API'], { type: 'text/plain' })

      download(fileName, myBlob)
    })
  </script>
</html>

在这里插入图片描述


vue3+ts声明 @vue/runtime-core 模块会导致 vue 方法导出错误

app.config.globalProperties.api = api; // 向所有组件注入 api 对象

注入之后是不能在组件中使用的,因为 ts 类型的原因,组件实例是没有 api 的声明的,所以需要额外声明

//bug:https://www.zhihu.com/question/437009843
declare module "@vue/runtime-core" {
  interface ComponentCustomProperties {
    /**
     * vuex存储库
     */
    $store: Store<IObject>;
    /**
     * ref引用
     */
    $refs: any;
}

.d.ts是干嘛的
在.d.ts声明变量或者模块等东西之后,在其他地方可以不用import导入这些东西就可以直接用,且有语法提示。
但是也不是说创建了.d.ts文件,里面声明的东西就能生效了,毕竟归根到底也是.ts文件,需要预编译,所以需要在tsconfig.json文件里面的include数组里面添加这个文件.
在这里插入图片描述
include数组里面可以不用写.d.ts文件的绝对路径,可以通过glob通配符,匹配这个文件所在的文件夹或者是“祖宗级别”文件夹。

支持的glob通配符有:

*匹配0或多个字符(不包括目录分隔符)

?匹配一个任意字符(不包括目录分隔符)

**/递归匹配任意子目录

declare是干嘛的

d.ts 文件中的顶级声明必须以 “declare” 或 “export” 修饰符开头。

通过declare声明的类型或者变量或者模块,在include包含的文件范围内,都可以直接引用而不用去import或者import type相应的变量或者类型。https://www.tslang.cn/docs/handbook/tsconfig-json.html
在编辑ts文件的时候,如果你想导入一个.css/.less/.png格式的文件,如果没有经过declare的话是会提示语法错误的
在这里插入图片描述
ps

1…d.ts文件顶级声明declare最好不要跟export同级使用,不然在其他ts引用这个.d.ts的内容的时候,就需要手动import导入了

2.在.d.ts文件里如果顶级声明不用export的话,declare和直接写type、interface效果是一样的,在其他地方都可以直接引用

iframe的简单介绍,优点 缺点

iframe也称作嵌入式框架,可以把一个网页的内容呈现在现有网页中

优点

  1. 可重用性
  2. 只需要重载页面中的一个框架页

缺点

  1. 蜘蛛”程序无法解读这种页面,会影响搜索引擎优化,不利于网站排名
  2. onload事件以及连接池(connection pool),即iframe会阻塞主页面的Onload事件及iframe和主页面共享连接池,会影响页面的并行加载。

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

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

相关文章

OpenPPL PPQ量化(2):离线静态量化源码剖析

目录 模型支持 量化onnx原生模型&#xff1a;quantize_onnx_model 输入输出 执行流程 ONNX格式解析 后记 模型支持 openppl支持了三种模型&#xff1a;onnx、caffe、pytorch&#xff0c;其中pytorch和caffe是通过quantize_torch_model和quantize_caffe_model&#xff0c…

Elasticsearch:Terms set 查询

什么是 terms set 查询&#xff1f; Terms set 查询根据匹配给定字段的精确术语的最少数量返回文档。 terms set 查询与 term 查询有何不同&#xff1f; Terms set query 和 Terms query 之间的唯一区别是你可以提供必须匹配的最少数量的术语才能检索特定文档。 什么是 minim…

【Ansys Meshing】Fluent Meshing和Ansys Meshing在划分边界层网格能力上的对比

一、几何模型展示 如下图所示&#xff0c;一端的圆柱是流体入口&#xff0c;另一端的圆柱是流体出口&#xff0c;中间都是导热管。 二、在spaceclaim中进行切割实体 2.1 切割手段 切割平面的位置如图两根线所示&#xff0c;最终得到左右两边两个有圆柱的大块&#xff0c;以…

【SAP Abap】X档案:SAP 快速提供基础数据给第三方系统访问的几种方法(附常用基础数据)

SAP 快速提供基础数据给第三方系统访问的几种方法1、数据封装2、开放RFC访问3、开放接口服务4、开放DB访问5、常用基础数据1、数据封装 在企业信息系统建设过程中&#xff0c;少不了的就是系统集成数据对接。 尤其是SAP系统中大量的基础数据集成&#xff0c;如各种字段值域&am…

C语言:操作符详解

往期文章 C语言&#xff1a;初识C语言C语言&#xff1a;分支语句和循环语句C语言&#xff1a;函数C语言&#xff1a;数组 目录往期文章前言1. 操作符分类2. 算术操作符3. 移位操作符4. 位操作符5. 赋值操作符6. 符合赋值符7. 单目操作符8. 关系操作符9. 逻辑操作符10. 条件操作…

Java 中的基本设计模式

设计模式是针对常见软件设计问题的可重用解决方案。它们提供了一种以一致且高效的方式组织和构建代码的方法。一些常见的设计模式包括&#xff1a;工厂模式是一种创建型设计模式&#xff0c;它提供用于在超类中创建对象的接口&#xff0c;但允许子类更改将要创建的对象的类型。…

【数据结构趣味多】优先级队列——堆

1. 优先级队列 概念&#xff1a; 队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队列时&#xff0c;可能需要优先级高的元素先出队列&#xff0c;该中场景下&#xff0c;使用队列显然不合适&#xff0c;比…

前端打包后生成的dist 或 build目录,如何在本地启动服务运行

前端打包后生成的dist/build目录&#xff0c;如何在本地启动服务运行 运行npn run build&#xff0c;会打包后会产生 dist 或 build 目录 一般情况下&#xff0c;直接打开dist 或 build 目录下的 index.html会在浏览器看到内容。 然而发现网页一片空白&#xff0c;打开了控制台…

C++基础入门(引用补充)

1、使用场景做参数void Swap(int& left, int& right) {int temp left;left right;right temp; }做返回值int& Count() {static int n 0;n;// ...return n; }c语言内&#xff0c;出了count函数&#xff0c;n被销毁&#xff0c;会创建临时变量存储其值&#xff0…

DETR——使用Transformer进行端到端目标检测的开端之作

深度学习知识点总结 专栏链接: https://blog.csdn.net/qq_39707285/article/details/124005405 此专栏主要总结深度学习中的知识点&#xff0c;从各大数据集比赛开始&#xff0c;介绍历年冠军算法&#xff1b;同时总结深度学习中重要的知识点&#xff0c;包括损失函数、优化器…

寻根究底,为什么Docker中的Alpine Linux镜像能这么小

去年我发表了文章对Docker基础镜像的思考&#xff0c;该不该选择alpine&#xff0c;其中对于Alpine Linux镜像如此之小的原因我解释为它使用了musl而不是glibc 有人发现并指出了我的这个错误&#xff0c;说musl与glibc的大小差别不足以造成如此大的差距&#xff0c;应该别有原…

C++-静态局部变量

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 特征&#xff1a; 1.需添加关键字static。 2.在静态存储区分配内存&#xff0c;始终存在直到程序结束。 3.作用域为局部&#…

阿⾥云Apsara Clouder云计算专项技能认证:云服务器ECS⼊门【 个⼈所得税年度应纳税额抵扣 3600(0成本)】

文章目录 引言I 云服务器ECS⼊门II 考试III 个⼈所得税app填写专项附加扣除引言 适合⼈群:需要交个⼈所得税的上班族,有⼀定计算机基础结果:⼯资年收⼊10-20万的,能省下360元(3600*10%)I 云服务器ECS⼊门 云服务器(Elastic Compute Service, 简称ECS),是一种简单高效,…

PDPS教程:机器人气动点焊焊枪大开与小开运动状态自动切换设置

目录 概述 气动点焊焊枪运动状态设置 机器人气动点焊焊枪工具类型定义 气动点焊焊枪运动状态切换原理 气动点焊焊枪大开与小开状态切换设置 机器人仿真运行 概述 工业机器人点焊焊接过程中&#xff0c;为了提高焊接效率、优化焊接节拍、降低能源消耗&#xff0c;通常会在…

2022尚硅谷SSM框架跟学(八)Spring MVC基础三

2022尚硅谷SSM框架跟学 八 Spring MVC基础三8.RESTful案例8.1准备工作8.2功能清单8.3.具体功能&#xff1a;访问首页(1).配置view-controller(2).创建页面8.4具体功能&#xff1a;查询所有员工数据(1).控制器方法(2).创建employee_list.html8.5具体功能&#xff1a;删除(1).创建…

企业电子招投标采购系统源码之功能模块功能描述

​ 功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外…

激光焊接/点焊的特性及优势分析?

目前应用于生产的点焊方式大多为电阻点焊、电弧点焊、激光点焊和胶接点焊等多种点焊方法。其中激光焊接是激光材料加工技术应用的重要方面之一。 激光点焊机主要由激光器、电源及控制、冷却机、导光及调焦、双目体视显微观察几部分构成&#xff0c;结构紧凑&#xff0c;体积小…

Android中对图片的操作,移动、缩放、涂鸦和保存到图库

一、实现方法 监听用户手势&#xff0c;提取用户操作 &#xff08;1&#xff09;移动&#xff1a; 分别计算X,Y轴的结束与初始之间移动偏移的量 &#xff08;2&#xff09;缩放&#xff1a;&#xff08;结束两指间距离伸缩比例&#xff09;/ 初始两指间距离&#xff0c;scaleX…

云计算|OpenStack|社区版OpenStack安装部署文档(五 --- 计算服务nova安装部署---Rocky版)

前言&#xff1a; nova服务是openstack最重要的一个组件&#xff0c;没有之一&#xff0c;该组件是云计算的计算核心&#xff0c;大体组件如下&#xff1a; OpenStack Docs: Compute service overview 挑些重点&#xff0c;nova-api&#xff0c;libvirt&#xff0c;nova-pla…

最小生成树与最短路径

目录 一.最小生成树 1.1概念 1.2Kruskal算法 1.3Prim算法 二.最短路径 2.11单源最短路径--Dijkstra算法 2.1.2单源最短路径--Bellman-Ford算法 一.最小生成树 1.1概念 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去…