- 博客(93)
- 收藏
- 关注
原创 v-model 收集表单数据
1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)(1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)若:,则v-model收集的是value值,用户输入的就是value值。若:,则v-model收集的是value值,且要给标签配置value值。(2)v-model的初始值是数组,那么收集的的就是value组成的数组。number:输入字符串转为有效的数字。lazy:失去焦点再收集数据。
2024-09-23 00:37:56
369
原创 axios二次封装
config 对象是由 Axios 库在内部创建并传递给拦截器函数的。当你使用 Axios 发起一个 HTTP 请求时,Axios 会根据你提供的请求配置选项(如 URL、方法、头信息等)创建一个 config 对象。这个对象包含了请求的所有必要信息。console.log(res)//后端给前端返回的数据。引入相关内容并创建axios实例。data:‘post传值方式’添加响应拦截器并导出。
2024-09-19 09:58:28
599
原创 组件间通信高级
系统事件:click,鼠标事件等自定义事件自定义事件是需要on与on与on与emit结合的 ,给原生dom绑定自定义事件是没有意义的,因为无法触发$emit.给组件标签上绑定的事件不是系统事件,是自定义事件,自定义事件需要在组件内部触发,如果将自定义事件变为原生dom事件,需要加.nactive修饰符。父组件内绑定自定义事件<template><div></div>子组件内触发$emit,并可以传入相应参数<template><div>
2024-08-19 18:00:34
1030
1
原创 reactive对比ref
从定义数据角度对比ref用来定义基本数据类型reactive用于定义引用数据类型备注:ref也可以定义引用数据类型数据,它内部会自动通过reactive转为代理对象从原理角度对比ref通过Object.defineproperty()的get与set来实现响应式(数据劫持)。reactive通过使用proxy来实现响应式(数据劫持),并通过reflect操作源对象内部的数据。从使用角度对比ref定义的数据:操作数据需要.value,读取数据时模板中直接读取reactive定义的数
2024-08-15 08:30:47
282
原创 JS面试题
用于创建一个新数组,这个方法不会修改原始数组,而是返回一个过滤后的新数组。在ES6中,Set 是一种新的数据结构,用于存储任何类型的唯一值。indexOf 方法是数组原型上的一个方法,用于在数组中查找指定元素的第一个出现位置,并返回该位置的索引。如果数组中不存在该元素,则方法返回 -1。filter用于对数组进行过滤。它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意:filter()不会对空数组进行检测、不会改变原始数组。
2024-08-11 18:56:02
605
原创 rem适配与vw适配
根据设计稿的尺寸,将各个元素的宽高、字体大小等属性转换为vw单位。(因为100px/1000px = 10vw,假设设计稿的宽度为1000px)。rem(根em)是基于根元素(即HTML元素)的字体大小的长度单位。当根元素的字体大小发生变化时,所有使用rem作为单位的元素都会相应地调整大小。1vw等于视口宽度的1%,这意味着任何使用vw作为单位的元素都会根据视口宽度的变化而相应地调整大小。由于vw是相对于视口宽度的,因此在不同屏幕尺寸的设备上,该按钮的宽度将自动调整为视口宽度的10%。
2024-08-06 12:35:50
502
原创 vue-router
1.问题router-link的两个高亮类名 太长了,我们希望能定制怎么办2.解决方案我们可以在创建路由对象时,额外配置两个配置项即可。linkActiveClass和linkExactActiveClasslinkActiveClass: "类名1",linkExactActiveClass: "类名2"})示例// 创建了一个路由对象routes: [...],linkActiveClass: 'active', // 配置模糊匹配的类名。
2024-07-30 21:58:18
1112
1
原创 Vant组件库的按需导入和导出
把引入组件的步骤抽离到单独的js文件中(utils/vant-ui.js)1.全部导入会引起项目打包后的体积变大,进而影响用户访问网站的性能。2.按需导入只会导入你使用的组件,进而节约了资源。main.js中导入该文件即可。
2024-07-19 22:58:38
520
原创 TypeScript
类型:String,Number,boolean,null,undefined,联合类型,类型限定。加问号代表可选值,所有可选的值都是放在最后。数组的类型靠内部存储的数据决定。特殊类型:数组,元祖,枚举。声明一个由字符串组成的数组。接口:通常用于对象的定义。声明一个全是数字的数组。
2024-07-16 00:19:27
251
原创 localStorage和sessionStorage以及两者区别
当localStorage存储对象数据时,需要使用 JSON.stringify() 方法将对象转为字符串存储,取的时候使用JSON.parse()方法将字符串转换为对象。localStorage 是一种客户端存储机制,在用户的浏览器中存储键值对形式的数据。sessionStorage 的语法与localStorage的一致。
2024-07-15 09:54:51
468
原创 Token
服务器生成的一个字符串,作为客户端进行请求的令牌。当我们第一次登录的时候,服务器就会生成一个token,并把token返回给前端,此时,前端可以带上token进行数据请求。(此时不需要带上账号和密码)(它很安全)
2024-06-29 09:53:15
275
原创 Git命令(1)[删除,恢复与移动]
当暂存区和工作区的文件不同时(工作区已修改未暂存),此时删除会报错,可以用-f强制删除。如果需要一同删除git仓库里的文件,需要额外提交一下。撤销对文件的修改,恢复到上一次提交的状态。针对于已暂存未提交的文件将其从暂存区取出。若将git里的也重命名,则需要执行提交操作。(只对工作区操作,不影响暂存区)(只对暂存区操作,不影响工作区)将工作区与暂存区文件重命名。删除工作区和暂存区的文件。不会影响暂存区的状态。
2024-04-02 22:55:17
635
原创 Git简介
3.git commit -m “它是一个试验文件”(暂存->未修改)2.使用命令git add 文件路径(未跟踪->暂存)官网:https://git-scm.com/git commit 将暂存的文件存储到仓库。提交所有已修改的文件(未跟踪的文件不会提交)修改文件内容的话,文件状态就变为已修改。我们使用git就是操作文件不同的状态。git log(打印每次修改的记录)将所有已修改/未跟踪的文件都变成暂存。(傻瓜式安装)检测是否安装成功。1.新建文本(未跟踪),让我们存储代码的。4.未修改->已修改。
2024-04-01 21:52:51
1385
原创 Session介绍
在这个过程中,服务器负责管理 Session,包括创建、存储、更新和销毁等操作。客户端通过携带会话标识来与服务器进行交互,从而实现用户状态的维持和个性化服务的提供。例如,Cookie 可以在客户端快速访问和处理一些常用信息,而 Session 则在服务器端保证数据的安全性和完整性。在实际应用中,通常会根据具体需求选择使用 Cookie 还是 Session,或者结合使用以达到更好的效果。,Cookie 和 Session 相互配合,为 Web 应用提供了有效的用户状态管理和数据存储方式。
2024-03-31 18:38:49
942
原创 cookie介绍
无状态问题指的是在 Web 应用中,服务器在处理每个请求时,不保留任何与特定客户端或请求相关的状态信息。这意味着服务器无法识别不同请求之间的关联。无法维持会话:用户每次请求都需要重新进行身份验证。缺乏个性化体验:不能根据用户的历史行为提供个性化服务。难以实现购物车等功能:无法跟踪用户的选择和操作。使用 Cookie:在客户端存储状态信息。使用 Session:在服务器端存储状态信息。使用令牌:例如 JSON Web Token(JWT)。
2024-03-31 18:06:26
668
原创 Node.js中Router的使用
在Node.js中,Router是Express框架提供的一种用于组织路由的方式,是express中创建的一个对象专门用于放置路由文件,通过module.exports导出供外部使用。router实际上是一个中间件,我们可以把在它身上绑定各种路由以及其他的中间件。通过使用Router,你可以将相关的路由组织在一起,从而更好地管理你的应用程序的路由。下面是关于如何在Node.js中使用Router在Router实例上定义你的路由。你可以使用等方法来定义相应的HTTP动词的路由。
2024-03-30 09:29:15
2062
1
原创 Post路由
Post路由是用于处理HTTP POST请求的路由。在Web开发中,POST请求通常用于向服务器提交数据,例如表单数据或JSON数据。Post路由的主要作用是接收这些数据并执行相应的处理逻辑。要创建一个POST路由,你可以使用你所用的Web框架提供的相应方法,例如在Express.js中,你可以使用app.post()方法。通常,第一个参数是要匹配的URL路径,第二个参数是一个回调函数,用于处理POST请求的逻辑。// 在这里进行验证用户名和密码的逻辑});
2024-03-24 15:58:34
316
原创 param参数
是指路由中的参数,用于捕获 URL 中的动态部分,并将其作为参数传递给路由处理函数。当定义包含参数的路由时,可以使用。是一个参数,用于捕获 URL 中的用户ID。方法来捕获 URL 中的动态部分,并将其传递给路由处理函数。时,Express.js 将捕获 URL 中的。参数传递给路由处理函数。你可以在处理函数中使用。来获取这个参数的值,然后进行相应的逻辑处理。在 Web 开发中,
2024-03-24 14:51:55
879
原创 中间件设置静态资源目录
设置static中间件后,浏览器访问时,会自动去public目录寻找是否有匹配的静态资源(可以理解为浏览器自动把public目录拼接到服务器地址的后面,总之,虽然 use 方法本身不是专门用于设置静态资源目录的,但你可以借助于内置的静态文件中间件来实现这一功能。接着,通过调用 app.use 方法将静态文件中间件应用到整个应用程序中。如果希望浏览器可以访问,则需要将页面所在的目录设置静态资源目录。服务器中的代码,对于外部来说都是不可见的,,这里使用的是相对路径 ‘public’,,用于提供静态文件服务。
2024-03-24 12:46:57
690
原创 服务器软件express搭建web服务器
路径区别,路由的话写的什么路径,访问的时候就是什么路径,但是如果是中间件的话,在路径后面还可以任意加东西,都可以访问成功,但是如果是路由的话,随便加东西是访问不成功的。如果希望服务器可以正常访问,则需要为服务器设置路由,路由可以根据不同的请求方式和请求地址来处理用户的请求。next() 是回调函数的第三个参数,它是一个函数,调用函数后,可以触发后续的中间件/路由。req() 表示的是用户的请求信息,通过req可以获取用户传递数据。路由的回调函数执行时,会接收到三个参数。第一个 request。
2024-03-23 23:01:01
1617
原创 HTTP协议与报文
TCP/IP协议族中包含了一组协议, 这组协议规定了互联网中所有的通信的细节。User-Agent 用户代理,它是一段用来描述浏览器信息的字符串。同时,由于url地址长度有限制,所以get请求无法发送较大的数据。第一部分 get 表示请求的方式,get表示发送的是get请求。响应头也是一个一个的名值对结构,用来告诉浏览器响应的信息。Accept-Encoding 浏览器允许的压缩的编码。请求头也是名值对结构,用来告诉服务器我们浏览器的信息。请求体的大小没有限制,可以发送任意大小的数据。
2024-03-23 16:28:56
695
原创 yarn的使用与安装
默认corepack是关闭的。可以通过启用corepack的方式使yarn启用。首先执行以下命令启用corepack。则运行时就不能只使用node 文件目录了,还得再在最前面加一个yarn才能运行。如果使用的是yarn3,则node项目里不会生成node_modules.执行命令以后,会自动安装yarn与pnpm。在新版本的node中,
2024-03-22 17:42:06
2317
原创 fs方法举例
fs.appendFile() 创建新文件,或将数据添加到已有文件中。mkdir可以接收一个 配置对象作为第二个参数,用toString()方法转字符串之后。recursive 默认值为false。fs.readFile() 读取文件。fs.copyFile() 复制文件。通过该对象可以对方法的功能进行配置。fs.mkdir() 创建目录。fs.rename() 重命名。fs.rm() 删除文件。输出的Buffer对象。
2024-03-19 23:27:33
434
原创 node核心模块之Path
_dirname 是 Node.js 中的一个全局变量,用于获取当前模块文件所在的目录的绝对路径。具体来说,__dirname返回的是当前模块文件的所在目录的绝对路径,而不是当前执行脚本的目录。
2024-03-19 21:50:42
684
原创 ES模块化
默认导出的内容,可以随意命名。导入的时候把sum改为别的名字也没问题。默认导出不写括号里面,其他导出要写在对象里,当我们设置"type":"module”时,当前项目下所有的js文件都默认为ES模块。修改package.json将模块化规范设置为ES模块。当我们尝试修改a的值会发现报错,提示我们常量不可修改。如图,把扩展名换为.mjs之后再打印就会出错。要想使用ES的模块化,可以采用以下两种方式。修改package.json文件。1.使用mjs作为扩展名。
2024-03-17 23:35:14
675
原创 CommonJs规范
使用require(“模块的路径”)函数来引入模块模块名要以./ 或 …/开头扩展名可以省略(除了扩展名是.cjs)在 JavaScript 中,引入模块时可以省略文件扩展名。当引入的模块是 JavaScript 文件(.js)、JSON 文件(.json)和node(.node)时,可以不写扩展名,Node.js 会根据需要自动解析文件类型并加载对应的模块。* 如果没有.js 后缀的同名文件它会寻找 .json后缀的。(如果两个后缀名都有,则优先导入后缀名为.js的)
2024-03-17 18:50:13
874
原创 数据和类型转换
什么情况出现未定义类型?只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。工作中的使用场景:开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。
2024-03-14 18:41:29
1058
原创 let和var的区别
let 和 var 区别:在较旧的JavaScript,使用关键字 var 来声明变量 ,而不是 let。var 现在开发中一般不再使用它,只是我们可能再老版程序中看到它。let 解决 了var 的一些问题。var 声明:可以先使用 在声明 (不合理)var 声明过的变量可以重复声明(不合理)比如变量提升、全局变量、没有块级作用域等等结论:var 就是个bug,别迷恋它了,以后声明变量我们统一使用 let
2024-03-14 14:56:13
256
原创 变量的本质和命名规则
变量的本质内存:计算机中存储数据的地方,相当于一个空间变量本质:是程序在内存中申请的一块用来存放数据的小空间变量命名规则与规范规则:不能用关键字关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等>只能用下划线、字母、数字、$组成,且数字不能开头字母严格区分大小写,如 Age 和 age 是不同的变量2.规范:起名要有意义遵守小驼峰命名法第一个单词首字母小写,后面每个单词首字母大写。例:userName
2024-03-14 13:54:53
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人