自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

原创 JMeter学习笔记二

面试题:1.做接口测试时,你是怎么做的数据校验(返回值验证)?一般你会验证哪些数据?校验code 200(说明后端接到了你的请求,并且给了应答)返回信息 sucess2.有1w个用户名密码需要登录,你怎么做?csv 自动化 数据驱动测试 DDT工作中的加密场景:公司的内部接口--对称加密【简单,速度快】对外接口--非对称加密怎么测试?作为测试人员,首要重点:加密规则,加密方式1.如果加密接口不多,数据都是死数据(不是上个接口关联的数据),叫开发把加密的数据给测试【最简单】

2024-05-26 10:54:14 328

原创 JMeter学习笔记一

一、JMeter背景:移动互联网 -- 小程序 移动APP+H5前后端分离(java,C++,C#) H5 JS Vue接口测试(Postman,jmeter,Apifox,ApiPost)我怎么发送请求?Http接口是一个特殊的URL地址,当有人访问这个地址后,这个地址会负责给我们提供/操作数据接口测试(四要素):URL地址 请求方式 请求参数 响应结果GET和POST有什么区别?get参数写url上,post参数写请求体测试片段分模

2024-05-25 15:44:36 318

原创 实习项目遇到的bug

大概是因为没设置ts类型,它查不到的问题,不定义的话加上问号,加上可选链就不会报错了。

2023-10-14 09:17:14 549

原创 实现手机号码中间四位显示为*号方法

【代码】实现手机号码中间四位显示为*号方法。

2023-10-14 08:58:09 502

原创 el-table通过scope.row获取表格每列的值,以及scope.$index

如上所示,scope.row是一个双向绑定的过程,当前行数据的获取也会用到插槽,scope相当于一行的数据, scope.row相当于当前行的数据对象。tableData在通过res.data.records调用返回值拿到后台数据库的数据,这样scope.row就会显示数据库对应条目数据,也可以进行传值到后端进行修改。②scope.row是获取这一行数据,scope.row.xxx是获取相对应的一个表格中的数据。③scope.$index是获取这一行的索引。①一定要用template包裹着才可以。

2023-10-11 11:45:31 11660

原创 ESLint自动修复代码规范错误

基于 vscode 插件 ESLint 高亮错误,并通过配置 自动 帮助我们修复错误。在设置中 settings.json添加这段代码就自动修复错误。

2023-10-04 19:01:22 534

原创 报错笔记

Module not found: Error: Can‘t resolve ‘less-loader‘ in ‘文件位置‘报错解决。说明使用了less但是没有安装,使用下面语句即可。

2023-10-01 10:10:41 46

原创 Vue3中的watchEffect函数

watchEffect的套路是:不用指明监视那个属性,监视的回调中用到哪个属性,那就监视哪个属性。但computed注重的是计算出来的值(回调函数的返回值),所以必须要写返回值。而watchEffect更注重的是过程(回调函数的函数体),所以不用写返回值。watch的套路是:既要指明监视的属性,也要指明监视的回调。

2023-09-26 09:13:51 142

原创 性能优化之节流

2每次事件触发时都先判断是否有定时器了,如果有则不开启定时器。节流的核心就是利用定时器setTimeout来实现。需求:鼠标在盒子上移动,不管移动多少次,每隔500ms才+1。3如果没有定时器则开启定时器,存到变量里面。定时器里面调用执行的函数。定时器里面要把定时器清空。方法一:lodash提供的节流函数来处理。1.lodash提供的节流函数来处理。1声明一个定时器变量。方法二:手写一个节流函数来处理。2.手写一个节流函数来处理。

2023-09-24 19:20:47 81

原创 性能优化之防抖

2每次事件触发时都要先判断是否有定时器,如果有先清除以前的定时器。需求:鼠标在盒子上移动,鼠标停止500ms之后,里面的数字才会变化+1。3如果没有定时器则开启定时器存入到定时器变量里面。核心是利用setTimeout定时器来实现。方法1:利用lodash库提供的防抖来处理。4定时器里面写函数调用。方法一:利用lodash库实现防抖。方法二: 手写一个防抖函数来处理。方法2:手写一个防抖函数来处理。

2023-09-24 17:55:26 213

原创 vue消息订阅与发布

3.消息订阅会接收到2个参数,第1个参数为消息名称,第2个参数才是传递过来的值,如写法1,但是实际msgName参数1他跟用不到它,所以可使用下划线“_”占个位,如写法2。或者外部定义方法,在订阅中引用也行,千万不要使用普通函数,因为普通函数中this不指代vc,而是undefine,这一点跟“全局事件总线”中的注意点很像,但还是略有不同。1.取消订阅方式和“全局事件总线”不同,取消订阅指定订阅返回的id,且每次返回的id都不同,而“全局事件总线”指定的是“自定义事件名称”School.vue(订阅方)

2023-09-22 09:10:48 261

原创 Vue全局事件总线

得到数据之后,解绑事件,提高性能// 销毁对应自定义事件this.$bus.$off('自定义事件名')【Vue全局事件总线详解】_vue事件总线_小田是个程序员的博客-CSDN博客。

2023-09-22 07:05:44 333

原创 vue2中的mixins和vue3中的hooks

mixins 是通过对象的方式进行组合和共享代码hooks 使用函数式的方式来定义逻辑和状态mixins的使用1.在src下创建一个mixin.js文件2.将vue文件的script部分抽离出来写入mixin.js文件下3.在原来的vue组件中引入mixin4。

2023-09-21 13:41:00 589

原创 前端编写一个express实现项目部署上线流程

1.先把写好的.vue文件打包成浏览器认识的html、css、js文件 使用npm run bulid命令。3.创建一个static文件夹,用来存放打包好的html、css、js文件。2.写一个express服务器。

2023-09-21 11:22:06 487

原创 分析key原理

key是虚拟dom对象的标识,当数据发生变化时,vue会根据新数据生成新的虚拟dom,随后vue进行新虚拟dom与旧虚拟dom的差异比较。若虚拟dom中内容变了,则生成新的真实dom,随后替换掉页面中之前的真实dom。若虚拟dom中的内容没变,直接使用之前的真实dom。如果不写key,vue会默认使用index作为key。①旧虚拟dom中找到了与新虚拟dom相同的key。②旧虚拟dom中未找到与新虚拟dom相同的key。创建新的真实dom,随后渲染到页面。使用index作为key。使用唯一标识作为key。

2023-09-20 16:59:17 435

原创 vue路由传参的几种方式

一、使用router-link进行路由导航,传递参数这里要特别注意:在子组件中获取参数的时候是route.params而不是router一、使用router-link进行路由导航,传递参数父组件中:使用标签进行导航解释:child是子页面路径,123是需要传递的参数。

2023-09-17 07:58:52 1546

原创 输入框不能为空格

3 这里是封装了一个全局函数,因为上面两种情况输入表情包会报错,后端没有对表情包进行处理 我传入的是dataForm.title,没有传第二个参数,所以使用的是默认值default,删除方括号和表情包。1 使用表单验证 + 正则表达式 这种情况是匹配两边空格 有空格就验证失败。2 失去焦点触发 这种情况是去除两边空格。2.输入空格后表单非空验证不通过。

2023-09-15 07:15:50 657

原创 const的值可不可以被更改

const定义的常量实际上是栈内存地址中的保存的值,const常量的值不可以被更改就是栈内存中保存的数据不可以被更改。而引用数据在栈内存中存储的是一个指针,真正的数据存储在指针指向的堆内存中,不可改变的是指针,真正的数据是可以更改的。原文链接:https://blog.csdn.net/ShaQiMa_/article/details/118651524。当const定义的常量是基本数据类型的时候不可以被更改。当const定义的常量是基本数据类型的时候不可以被更改。

2023-09-09 01:01:46 950

原创 父传子/子传父( 选项式和组合式)

子组件通过$emit触发自定义事件,$emit第一个参数为事件名称,第二个参数为传递的数值,父组件通过@绑定事件获取到子组件传递过来的参数。子组件设置props属性定义接收父组件传递过来的参数,父组件中给子组件绑定属性。第一种:父组件向子组件通信:props属性。第二种:子组件向父组件通信:$emit方法。只是组合式中在选项式的基础上加多了一行。

2023-09-04 14:08:04 97

原创 图片懒加载指令

只有当所需功能只能通过直接的 DOM 操作来实现时,才应该使用自定义指令。其他情况下应该尽可能地使用 v-bind 这样的内置指令来声明式地使用模板,这样更高效,也对服务端渲染更友好。电商网站的首页通常会很长,用户不一定能访问到页面靠下面的图片,这类图片通过懒加载优化手段可以做到。isIntersecting:判断当前图片是否进入可视区域。只有进入视口区域才发送图片请求。在vue官网中查看的。

2023-09-04 13:57:50 72

原创 pinia和vuex的使用以及区别

还是要记笔记多看才行,要不然老是会忘记。

2023-09-04 10:53:41 126

原创 原型和原型链

2.原型链:每个对象都有一个_proto_,它指向创建该对象的函数的原型对象;然后这个原型对象又有一个_proto_,指向创建它的函数的原型对象,这样逐层深入直到顶层对象Object的原型对象,这就形成了一个原型链。2.Object是最顶层的对象,所有对象都继承Object的原型对象,它也是被Function创建出来的。1、函数和对象的关系:对象都是通过函数创建的,函数也是一个对象。(4)对象._proto_:指向创建该对象的函数的原型对象。(1)函数.prototype:指向函数的原型对象。

2023-08-19 21:13:55 643

原创 vue中style scoped属性的作用

2、实现原理: style 标签中添加 scoped 属性后,vue 就会为当前组件中的 DOM 元素添加唯一的一个自定义属性(唯一性的标记)【data-v-xxx】,即CSS带属性选择器,以此完成类似作用域的选择方式,从而达到样式私有化,不污染全局的作用。1、作用:当style标签里面有scoped属性时,它的css只作用于当前组建的元素。在单页面项目中可以使组件之间互不污染,实现模块化(实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块)。

2023-08-13 18:01:12 741

原创 Less和Sass的原理和用法

1.1 Less定义:是一种动态的样式语言,使CSS变成一种动态的语言特性,如变量、继承、运算、函数。Less和SaSS都属于预处理器,它会定义一种新的语言,其总体思想是为CSS增加一些编程的特性,将 CSS 作为目标生成文件,之后开发者就只要使用这种语言进行CSS的编码工作。1.2 SaSS定义:是一种动态样式语言,SaSS里面的语法属于缩排语法,对于之前的css相比,多出了很多功能,更容易阅读。compressed:压缩后的css代码。3.5 轻松实现多重继承,完全兼容了CSS代码,提高了开发效率。

2023-08-13 11:31:57 2197

原创 CSS实现左侧固定,右侧自适应(5种方法)

【代码】CSS实现左侧固定,右侧自适应(5种方法)

2023-08-13 09:34:53 5314

原创 Object.assign详解

可以看到两者得到的结果是一样的。所以,我认为这两个方法,除了兼容性应该是一样的。四、与$.extend( )的比较。2、目标对象和源对象有重名属性。

2023-08-12 22:59:35 462

原创 谈谈闭包和闭包使用场景

我们想要实现点击第一个button出现0,点击第二个出现1,依次类推。公司中是这么写的,因为let是块级作用域,每次执行i都会保存起来。概念:闭包还是作用域的一种特殊应用。2.解决for i 的问题。1.函数当做返回值被返回。2.函数当做参数被传递。

2023-08-11 23:01:33 194

原创 为什么token要同时存在vuex和localStorage中

所以我们在项目中通常是结合这两者使用,拿到token后,把token存储到localStorage和vuex中,vuex保证数据在各组件间同步更新,如果刷新页面数据丢失,我们可以从localStorage获取,通过结合vuex和localStorage本地存储,实现数据的持久化。数据统一全局管理,一旦数据在某组件更新,其他所有组件数据都会更新,也就是说它是响应式的,但是如果数据只存在vuex中,刷新页面vuex里的数据会重新初始化,导致数据丢失,恢复到原来的状态。

2023-08-11 20:29:56 181

原创 图片懒加载

图片懒加载:优先加载可视区域的内容,其它内容等进入了可视区域再进行加载从而提高性能分为两步:(1)怎么加载图片?(2)怎么判断是否进入了可视区域?

2023-08-10 13:02:39 122

原创 客户端渲染和服务端渲染的区别

*最少两次请求 **

2023-08-10 09:06:56 700

原创 Vue常见的事件修饰符

1.prevent:阻止默认事件(常用)2. stop:阻止事件冒泡(常用)3. once:事件只触发一次(常用)4.captrue:使用事件的捕捉模式(不常用)5.self:只有event.target是当前操作的元素时才触发事件(不常用)6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕(不常用)

2023-08-07 22:56:34 2223

原创 router和route的区别

简单理解为,route是用来获取路由信息的,router是用来操作路由的。

2023-08-07 15:18:39 355

原创 Vue Router 的query和params的区别?

(2)params传参push里面只能是name: 'xxx', params只能用name来引入路由,如果换成path,接受参数页面会是undefined。(1)传递数据较多时,用query, 因为query传入的是一个对象 (query可以用path也可以用name来引入路由)(2)params相当于post请求,参数不会在地址栏中显示,所以用params传值相对安全。(1)query相当于get请求,页面跳转的时候可以在地址栏看到请求参数。(2)params刷新会丢失params里面的数据。

2023-08-07 15:16:54 665

原创 项目中使用git && vscode && GitHubDesktopSetup-x64

1.使用git bash拉取gitee项目1.在本地新建一个文件夹(这个文件夹是用来存放从gitee上拉下来的项目的)2.在这个文件夹右键选择 git bash here3.输入命令 git init (创建/初始化一个新的仓库)4.输入命令 git remote add origin https://giteexxxxxx (git上https的网址) —>与远程库连接。

2023-08-07 12:05:21 1182

原创 TypeScript初学

函数的类型实际上指的是:函数参数和返回值的类型格式://普通函数function 函数名(形参1:类型=默认值,形参2:类型=默认值):返回值类型 { }//箭头函数const 函数名(形参1:类型=默认值,形参2:类型=默认值):返回值类型 => { }示例// 函数声明// 箭头函数add(1,'1') // 报错。

2023-08-06 16:28:17 1364

原创 Element-ui中分页器的使用

template>中写:js中写:

2023-08-06 10:02:31 450

原创 Flex弹性盒子的项目属性

最近在写项目时用到了弹性盒子的项目属性,记录一下,以后用到继续扩充。需求就是:把数量显示在图标图片的右上角。

2023-08-05 10:36:10 130

原创 CSS3属性之text-overflow:ellipsis

语法:默认值为clip 不显示省略标记:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。:当对象内文本一处时显示省略标记(...)。

2023-08-05 09:27:14 4336

原创 CSS水平垂直居中

一、利用position+margin:auto。1.利用定位 + margin:auto。

2023-08-04 09:32:30 1276

原创 CSS中的BFC是什么?

简单来说就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

2023-08-03 15:22:44 1133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除