自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS Object遍历常用方式

Object.keys() // 遍历对象自有的可枚举属性,不包括继承自原型的属性和不可枚举的属性Object.values() // valueObject.getOwnProperty() // 遍历对象的自有属性,包括可枚举和不可枚举的属性,不包括继承自原型的属性。// for in 遍历对象的可枚举属性,包括自有属性、继承自原型的属性Object.entries() // 对象自身可枚举属性的键值对数组,不包括原型链...

2022-03-09 15:52:45 2928

原创 this.getOptions is not a function

package.json

2022-02-08 16:47:38 650

原创 Ant Design Table组件scroll属性问题

Ant Design Table组件scroll属性问题表格字段内容超长后,设置的多行省略样式不生效,导致表格宽度被撑开。解决方式scroll="{ y: '100%} "

2021-10-27 15:07:53 2925 1

原创 vue子组件props通过default定义默认参数,接受参数为Object或Array类型时undefined报错

问题描述子组件props属性中定义参数来接受父组件传值,但当父组件未对该参数传值时,可以通过default来定义默认参数值,但是在接受的参数为Object或Array类型时,需要通过Function来返回。这时候就有两种定义方式了。// 方式1() => {}// 方式2Function() { return {}}但是使用方式1并没有达到预期效果,可以在mounted()生命周期打印值,发现默认值为undefied,但使用方式2功能正常。组件简单介绍Ant Design的表

2021-10-12 11:36:52 4429

原创 JS函数默认参数为对象,调用时不传参报错

updateGrid({resetPage = true, scrollTop = true}) { console.log(resetPage)}this.updateGrid() // 不传参数调用会报错:undefined prop "resetPage"// 正确写法updateGrid({resetPage = true, scrollTop = true} = {}) { console.log(resetPage)}...

2021-10-11 17:27:46 770

原创 使用Ant Design栅格布局时,offset不生效问题

问题记录<a-row> <a-col :span="12"></a-col> <a-col :span="10" :offset="2" style="margin: 10px 0"></a-col></a-row>错误原因不能再在<a-col>标签内使用style的margin属性

2021-10-11 15:51:08 1058

原创 ant design vue带有远程搜索,节流控制,请求时序控制,加载状态的下拉选择框a-select 与 a-select-option 踩坑,清除后placeholder不显示

<template> <a-select allowClear :value="value" @search="fetchData" @change="selectChange" :placeholder="holder" :not-found-content="fetching ? undefined : '暂无数据'" :filterOption="false" :getPopupContainer="triggerN

2021-09-26 11:58:40 1455

原创 使用appendChild()插入DOM节点后,立即执行Focus()获取焦点操作,结果不起作用

使用appendChild()插入DOM节点后,立即执行Focus()获取焦点操作,结果不起作用HTML<div class="content" id="content"></div>JSlet content = document.getElementById("content")let edit = document.createElement("div")content.appendChild(edit)// edit.focus() // 添加即可编辑se

2021-09-03 13:57:25 545

原创 前端安全-常见网络攻击方式及其原理与防御方法

前端安全CSRF/XSRF攻击——跨站点请求伪造原理:1、利用客户端登录目标网站后存在的Cookie信息,第三方网站诱导用户在该网站下发起对目标网站服务器的请求。2、而目标服务端未对请求做过滤或其他防护验证,就使得黑客利用用户的身份,成功完成与服务器的会话请求。防御:1、验证HTTP Referer字段:HTTP头中有Referer字段,记录了HTTP请求的来源地址。服务端可以通过验证该字段来判断请求是否是指定URL,而不是第三方网站。2、HTTP请求头中添加token,token由用户第一次

2021-07-28 17:09:54 659

原创 总结methods与computed区别

总结methods与computed区别:1、调用方式不同。computed直接以对象属性方式调用,不需要加括号,而methods必须要函数执行才可以得到结果。2、绑定方式不同。methods与compute纯get方式都是单向绑定,不可以更改输入框中的值。compute的get与set方式是真正的双向绑定。3、是否存在缓存。methods没有缓存,调用相同的值计算还是会重新计算。competed有缓存,在值不变的情况下不会再次计算,而是直接使用缓存中的值。...

2020-07-05 17:52:41 3828

原创 forEach、for in 、 for of的区别

forEachforEach专门用来循环数组,对数组的每一个元素执行一次提供的函数(不能使用return、break、continue等中断循环,没有返回值),可以直接取到元素,同时也可以取到index值、数组。let arr = [1, 2, 3, 4, 5]arr.forEach(function(value, index, arr) { console.log(index + ':' + value) console.log(arr)})结果1:1(5) [1, 2, 3, 4,

2020-07-05 13:22:20 159

原创 JS的数组、set、map、json区别

Set数据结构与数组Set 对象类似于数组,但成员的值唯一。const arr = [1, 2, 3, 4, 4, 3, 2, 1];const set = new Set();arr.forEach(item => set.add(item));console.log(set); // 1, 2, 3, 4, 5console.log([...new Set(arr)]); //[1, 2, 3, 4, 5],数组快速去重Map数据结构和JSONJSON 和 Map类似,它们的

2020-07-03 13:23:05 1410

转载 Map数据结构---跟内存绑定的键

1、只有对同一个对象的引用,Map 结构才将其视为同一个键const map = new Map();map.set(['a'], 555);map.get(['a']) // undefined上面代码的set和get方法,表面是针对同一个键,但实际上这是两个不同的数组实例,内存地址是不一样的,因此get方法无法读取该键,返回undefined。同理,同样的值的两个实例,在 Map 结构中被视为两个键。const map = new Map();const k1 = ['a'];co

2020-07-03 11:08:53 211

原创 JavaScript NaN 属性

定义NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。用法1、可以把 Number 对象设置为该值,来指示其不是数字值。2、说明某些算术运算(如求负数的平方根)的结果不是数字。方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值。3、NaN 与所有值都不相等,包括它自己。...

2020-06-30 19:40:34 146

原创 CDN是什么?工作原理和作用

一、CDN作用使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。二、CDN原理最简单的CDN网络由一个DNS服务器和几台缓存服务器组成。而工作的核心就是缓存服务器,它记录了用户所需内容,而且离用户较近,负载较小,因此提高了服务器响应速度。实际上CDN的工作过程要更复杂,为了便于连接,上面只是简述。我们从用户访问一个URL地址说起:访问URL => CNAME指向的CDN专用DNS服务器对URL解析 => 负载均衡设备根据解析的ip地址和内容选择一台缓存服务器 =>

2020-06-12 13:21:08 2084

原创 JavaScript splice() 方法

JavaScript splice() 方法作用删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。语法arrayObject.splice(index,howmany,item1,.....,itemX)参数index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置.howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。item1, …, itemX 可选。向数组添加的新项目。注意会改变原始数组

2020-06-05 00:39:35 175

原创 你不一定知道的三元表达式用法(JavaScript)

你不一定知道的三元表达式用法(JavaScript)1、常见用法表达式 ? 真结果 : 假结果vMax = v1 >= v2 ? 666 : 999运算符 “ > , ==, <, >=, <= " 返回的结果为 true 或 false所以我们常认为结果为 true 或 false 的时候才能使用三元表达式2、少见用法当遇到下面这种情况时,表达式正确吗?var arr = '' // int arr = ''arr = arr ? '

2020-06-04 20:44:49 306

原创 JavaScript的async/await简单使用

JavaScript的async/await简单使用1、明确概念和用法:async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。2、async 函数返回的是一个 Promise 对象,所以 await 可以用于等待一个 async 函数的返回值,如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。列一个在vue中使用element-ui的例子async showDeleteDialog () { con

2020-06-03 15:39:08 230

原创 vue报错Cannot read property editCateObject of null

vue报错: Cannot read property ‘editCateObject’ of null下面展示 template部分代码和javaScript部分代码。<template> <div> <el-button type="primary" @click="editCate(this.editCateObject.cat_id)"> 确 定 </el-button> </div&

2020-06-03 14:15:00 207

空空如也

空空如也

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

TA关注的人

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