自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 迭代器(Iterator)和生成器(Generator)

迭代器和可迭代协议redux-saga是建立在ES6的生成器基础上的,要熟练的使用saga,必须理解生成器。要理解生成器,必须先理解迭代器和可迭代协议。迭代类似于遍历遍历:有多个数据组成的集合数据结构(map、set、array等其他类数组),需要从该结构中依次取出数据进行某种处理,有特定的数据结构。迭代:按照某种逻辑,依次取出下一个数据进行处理。迭代器 iteratorJS语言规定,如果一个对象具有next方法,并且next方法满足一定的约束,则该对象是一个迭代器(iterator)。

2021-07-05 00:22:02 290

原创 history库

history对象该对象提供了一些方法,用于控制或监听地址的变化。该对象不是window.history,而是一个抽离的对象,它提供统一的API接口,封装了具体的实现createBrowserHistory 产生的控制浏览器真实地址的history对象createHashHistory 产生的控制浏览器hash的history对象createMemoryHistory 产生的控制内存中地址数组的history对象history对象共同的特点:维护了一个地址栈第三方库:history

2021-06-29 10:22:47 1109

原创 git上线流程

1.本地分支上传远端 git push 2.切换到master主分支。 git checkout master 3.拉取最新 git pull 4.新建分支 merge/日期 先切换 git checkout merge/20210528 切换没有的话新建+切换 git checkout -b merge/20210528 5.合并自己的分支到merge/日期分支(合分支之前必须要保证自己的分支已经发到远端) git merge origin/fe...

2021-06-03 00:17:31 466

原创 State Hook

State Hook State Hook是一个在函数组件中使用的函数(useState),用于在函数组件中使用状态 useState 函数有一个参数,这个参数的值表示状态的默认值函数的返回值是一个数组,该数组一定包含两项 第一项:当前状态的值第二项:改变状态的函数 一个函数组件中可以有多个状态,这种做法非常有利于横向切分关注点。 注意的细节 useState最好写到函数的起始位置,便于阅读useState严禁出现在代码块(判断、循环)中useS...

2021-06-03 00:04:16 116

原创 手写一个instanceof

function instance_of(L, R) { var O = R.prototype; L = L.__proto__; while (true) { if (L === null) return false; if (O === L) return true; L = L.__p...

2021-05-21 12:47:07 51

原创 html5新特征

H5新特征:为了更好地处理今天的互联网应用,HTML5添加了很多新元素(语义化标签,)及功能,比如: 图形的绘制(canvas & svg),多媒体内容(audio vedio),更好的页面结构,更好的形式处理,和几个api拖放元素,定位,包括网页应用程序缓存,存储(localStorage & sessionStorage)语义化标签:标签描述<header></header>定义了文档的头部区域<footer><

2021-04-29 13:01:23 88

原创 防抖和节流

防抖和节流:在给DOM绑定事件时,有些事件我们是无法控制触发频率的。 如鼠标移动事件onmousemove, 滚动滚动条事件onscroll,窗口大小改变事件onresize,瞬间的操作都会导致这些事件会被高频触发。 如果事件的回调函数较为复杂,就会导致响应跟不上触发,出现页面卡顿,假死现象。 在实时检查输入时,如果我们绑定onkeyup事件发请求去服务端检查,用户输入过程中,事件的触发频率也会很高,会导致大量的请求发出,响应速度会大大跟不上触发。针对此类快速连续触发和不可控的高频触发问题,debounc

2021-04-27 18:25:58 71

原创 内联元素的padding和margin

内联元素的padding和margin能设置上吗?​ 这是我前段时间面试某中厂被问到的一道面试题,一开始有点懵,但照自己的理解是这样回答的:内联元素不能通过改变宽高来改变元素大小,只能通过内部撑开,padding设置不上,margin-left和right可以设置上,margin-top和bottom设置不上。​ 面试结束后,我感觉自己对这一部分的理解还是存在问题,就一些论坛和官网查了相关问题,结论如下:​ 1.内联元素的pading-left和padding-right可以设置上,paddi

2021-04-27 16:55:47 856

原创 JS数组原型方法

JS中创建数组有两种方法:(一)使用Array构造函数:new Array() //创建一个空数组new Array(10) //创建一个长度为10的数组new Array(1,2,3) //创建数组为 [1,2,3](二)使用数组字面值创建:let arr1 = [];//创建一个空数组let arr2 = [10] //创建一个一项为10的数组let aee3 = [1,2,3] //创建数组[1,2,3]数组原型方法:join(separator):将数组转化为字符串类型

2021-04-27 08:41:43 328

原创 解析url中的query参数

const url = "https://so.csdn.net/so/search/all?q=query&t=all&p=1&s=0&tm=0"; //测试用例function func(url) { let obj = {} let i = url.indexOf("?") + 1; let str = url.substr(i); let arr = str.split("&") for(let i = 0; i

2021-04-26 22:42:57 2305

原创 数组扁平化方法

let arr = [1, 2, 3, [4, [5, 6]], 7]; //测试用例//递归解决+展开运算符function func(arr) { let result = []; arr.forEach(element => { if (Array.isArray(element)) { result = [...result,...func(element)] } else { res

2021-04-26 21:55:49 56

原创 computed和methods

computed和methods有什么区别?标准而浅显的回答在使用时,computed当做属性使用,而methods则当做方法调用computed可以具有getter和setter,因此可以赋值,而methods不行computed无法接收多个参数,而methods可以computed具有缓存,而methods没有更接近底层原理的回答vue对methods的处理比较简单,只需要遍历methods配置中的每个属性,将其对应的函数使用bind绑定当前组件实例后复制其引用到组件实例中即.

2021-04-24 19:43:09 718 1

原创 HTML基础标签(入门级)

html (hyperText markup language 超文本标记语言)<html></html>:根标签<head></head>: 思想类的东西,编辑给浏览器,看不到的东西<body></body>: 看得到的东西<meta charset = "utf-8">: utf-8(万国码)<title>淘宝网</title><html la..

2021-04-18 00:16:42 432 4

原创 vue数据响应式

响应式数据的最终目标,是当对象本身或对象属性发生变化时,将会运行一些函数,最常见的就是render函数。在具体实现上,vue用到了几个核心部件:ObserverDepWatcherSchedulerObserverObserver要实现的目标非常简单,就是把一个普通的对象转换为响应式的对象为了实现这一点,Observer把对象的每个属性通过Object.defineProperty转换为带有getter和setter的属性,这样一来,当访问或设置属性时,vue就有机会做一些别的事情。这些

2021-04-16 00:03:01 364

原创 v-model

​v-model既可以作用于表单元素,又可作用于自定义组件,无论是哪一种情况,它都是一个语法糖,最终会生成一个属性和一个事件当其作用于表单元素时,vue会根据作用的表单元素类型而生成合适的属性和事件。例如,作用于普通文本框的时候,它会生成value属性和input事件,而当其作用于单选框或多选框时,它会生成checked属性和change事件。v-model也可作用于自定义组件,当其作用于自定义组件时,默认情况下,它会生成一个value属性和input事件。v-model虽然很像使用了双向数据绑定的

2021-04-15 20:10:43 111

空空如也

空空如也

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

TA关注的人

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