前端知识
bgogo
多看,多写,多问
展开
-
React 中setState更新state何时同步何时异步?
React中constructor是唯一可以初始化state的地方,也可以把它理解成一个钩子函数,该函数最先执行且只执行一次。更新状态不要直接修改this.state。虽然状态可以改变,但不会触发组件的更新。应当使用this.setState(),该方法接收两种参数:对象或函数。对象:即想要修改的state 函数:接收两个函数,第一个函数接受两个参数,第一个是当前state,第二个是当前props,该函数返回一个对象,和直接传递对象参数是一样的,就是要修改的state;第二个函数参数是stat转载 2020-10-29 16:05:49 · 875 阅读 · 0 评论 -
原生JS实现bind()函数
一、bind()函数的两个特性:1、bind和curring,函数科里化function add(a, b, c) { var i = a+b+c; console.log(i); return i;}var func = add.bind(undefined, 100);//给add()传了第一个参数afunc(1, 2);//103,继续传入b和cvar func2 = func.bind(undefined, 200);//给func2传入第一个参数,也就转载 2020-10-18 15:34:59 · 346 阅读 · 0 评论 -
你真的了解回流和重绘吗
浏览器的渲染过程本文先从浏览器的渲染过程来从头到尾的讲解一下回流重绘,如果大家想直接看如何减少回流和重绘,优化性能,可以跳到后面。(这个渲染过程来自MDN)从上面这个图上,我们可以看到,浏览器渲染过程如下:解析HTML,生成DOM树,解析CSS,生成CSSOM树 将DOM树和CSSOM树结合,生成渲染树(Render Tree) Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小) Painting(重绘):根据渲染树以及...转载 2020-10-16 20:18:33 · 349 阅读 · 1 评论 -
10 分钟理解 BFC 原理
一、常见定位方案在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案:普通流 (normal flow)在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定。浮动 (float)在浮动布局中,元素首先按照普通流的位置出现,然后根据浮动的方向尽转载 2020-10-16 00:17:49 · 98 阅读 · 0 评论 -
理解MVVM在react、vue中的使用
一:什么是MVC、为什么不用MVC1:MVC的含义:M(modal):是应用程序中处理数据逻辑的部分。 V (view) :是应用程序中数据显示的部分。 C(controller):是应用程序中处理用户交互的地方(Controller是MVC中的数据和视图的协调者,也就是在Controller里面把Model的数据赋值给View来显示(或者是View接收用户输入的数据然后由Controller把这些数据传给Model来保存到本地或者上传到服务器))M-V-C之间的关系可以用下面这张图直观展示.转载 2020-10-15 15:25:21 · 841 阅读 · 0 评论 -
cookie、session和localStorage以及sessionStorage之间的区别
一、cookie、session和localStorage的区别cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘而是保存在内存里,当然这个行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再打开浏览器这些cookie仍然有效直.转载 2020-10-14 14:15:21 · 2456 阅读 · 0 评论 -
Javascript深入理解事件循环(Macro Task、Micro Task)
众所周知,JavaScript 是一门单线程语言,虽然在 html5 中提出了 Web-Worker ,但这并未改变 JavaScript 是单线程这一核心,,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?浏览器执行线程在解释事件循环之前首先先解释一下浏览器的执行线程:浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程,其中浏览器渲染进程(浏览器内核)属于浏览器多进程中的一种,主要负责页面渲染,脚本执行,事件处理等其包含的线程有:GUI 渲染线程(负责渲染页面,解析 HTM转载 2020-08-17 17:25:18 · 293 阅读 · 0 评论 -
javascript原型、原型链以及继承的理解
一、原型、原型链原型是Javascript中的继承的基础,JavaScript的继承主要依靠原型链来实现的。原型 在JavaScript中,我们创建一个函数A(就是声明一个函数), 就会为该函数创建一个prototype属性。而且也会在内存中创建一个对象B,A函数的属性 prototype 指向这个对象B( 即:prototype的属性的值是这个对象 )。这个对象B就是函数A的原型对象,简称函数的原型。这个原型对象B 默认会有一个属性 constructor, constructor属性指向函转载 2020-08-02 18:44:24 · 246 阅读 · 0 评论