v>
摘要: 1. 字符串 字符串就是一个或多个排列在一起的字符,放在单引号或双引号之中。 'abc' "abc" length属性 js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以用length属性取得字符串的长度 var str = "hello" str.length; // 5 字符串 阅读全文
posted @ 2019-03-11 09:15 一小半 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1. 数组初认识 Array是js中的引用数据类型,除了Object外,Array几乎是ECMAScript中最常用的数据类型了。 js中的数组与其他语言的不同之处 2. 栈方法 ECMAScript中提供了让数组的行为类似于栈的方法,即可以让数组表现的如同栈的LIFO数据结构一般,方法分别是pus 阅读全文
posted @ 2019-03-08 11:22 一小半 阅读(1588) 评论(0) 推荐(0) 编辑
摘要: 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。 闭包的特性: 1.函数内再嵌套函数 2.内部函数可以引用外层的参数和变量 3.参数和变量不会被垃圾回 阅读全文
posted @ 2019-03-07 09:08 一小半 阅读(2169) 评论(0) 推荐(1) 编辑
摘要: // event(事件)工具集,来源:github.com/markyun markyun.Event = { // 页面加载完成后 readyEvent : function(fn) { if (fn==null) { fn=document; } var oldonload = window.o 阅读全文
posted @ 2019-03-06 09:21 一小半 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 0.1. 浅拷贝 拷贝就是把父对象的属性,全部拷贝给子对象 下面这个函数,就是在做拷贝: 使用的时候,这样写: 但是,这样的拷贝有一个问题.那就是,如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,而不是真正拷贝,因此存在父对象被篡改的可能. 现在给Chinese添加一 阅读全文
posted @ 2019-03-05 09:56 一小半 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 个箭头函数表达式的语法比一个函数表达式更短,并且不绑定自己的 this,arguments,super或 new.target。 这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。 0.1. 基础语法 0.2. 高级语法 1. 描述 另见 "ES6 In Depth: Arrow fun 阅读全文
posted @ 2019-02-28 09:14 一小半 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了。 先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该 阅读全文
posted @ 2019-02-26 23:25 一小半 阅读(290) 评论(0) 推荐(0) 编辑
摘要: DOM事件的级别 DOM0,element.onclick = function(){} DOM2,element.addEventListener('click', function(){}, false); DOM事件模型是什么:指的是冒泡和捕获 DOM事件流是什么:捕获阶段 -> 目标阶段 - 阅读全文
posted @ 2019-02-26 17:58 一小半 阅读(181) 评论(0) 推荐(0) 编辑
摘要: arguments 是一个类似数组的对象, 对应于传递给函数的参数。 1. 描述 arguments对象是所有函数中可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数的条目,第一个条目的索引从0开始。例如,如果一个函数传递了三个参数,你可以参考它们 阅读全文
posted @ 2019-02-25 18:38 一小半 阅读(6794) 评论(0) 推荐(2) 编辑
摘要: 下面是一个常用的关于 React 的面试问题列表: 务必收藏 React 的工作原理 React 会创建一个虚拟 DOM(virtual DOM)。当一个组件中的状态改变时,React 首先会通过 "diffing" 算法来标记虚拟 DOM 中的改变,第二步是调节(reconciliation),会 阅读全文
posted @ 2019-02-24 22:00 一小半 阅读(2933) 评论(0) 推荐(1) 编辑
摘要: 为什么要去了解函数节流和去抖呢?因为我想了解啊~搞事情~好了还是正经点吧,原因是是下面: 下面场景往往由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致UI停顿甚至浏览器崩溃。 阅读全文
posted @ 2019-02-17 20:47 一小半 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 1. 1.关于offset-* offset在这里有偏移量的意思,offset-*系列共有四个属性:offsetTop、offsetLeft、offsetWidth、offsetHeight,这些属性均用来测算距离,但在详细讲解之前,我们先要弄懂offsetParent。 1.1. 1.offset 阅读全文
posted @ 2019-02-16 20:18 一小半 阅读(285) 评论(0) 推荐(0) 编辑
摘要: Object.assign()` 方法用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 1. 语法 1.1. 参数 target 目标对象。 sources (多个)源对象。 target 目标对象。 sources (多个)源对象。 1.2. 返回值 目标对象。 2. 阅读全文
posted @ 2019-02-14 09:25 一小半 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 个箭头函数表达式的语法比一个函数表达式更短,并且不绑定自己的 this,arguments,super或 new.target。 这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。 0.1. 基础语法 0.2. 高级语法 1. 描述 另见 "ES6 In Depth: Arrow fun 阅读全文
posted @ 2019-01-29 14:10 一小半 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 简单地说,一个React Elements 描述了你想在屏幕上看到什么。 不是简单的说,一个React Elements 是一些UI的对象表示。 一个React Components 是一个函数或一个类,它可以接受输入并返回一个React元素(通常通过JSX被转化为一个createElement调用 阅读全文
posted @ 2019-01-28 10:12 一小半 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 本文主要讲述三方面内容: Redux背后的设计思想 在讲设计思想前,先简单讲下Redux是什么?我们为什么要用Redux? 1. Redux是什么? Redux是JavaScript状态容器,能提供可预测化的状态管理。 它认为: Web应用是一个状态机,视图与状态是一一对应的。 所有的状态,保存在一 阅读全文
posted @ 2019-01-24 14:26 一小半 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 如果你创建了一个类似元素做出反应Twitter的下面,你会的组件定义Twitter的样子? 如果你不熟悉渲染回调模式,这将看起来有点奇怪。在这种模式中,组件接收一个函数作为它的孩子。注意<Twitter>上面打开和关闭标签的内容。Twitter组件的子代替您之前可能看到的其他组件,而是一个功能。这意 阅读全文
posted @ 2019-01-22 09:58 一小半 阅读(157) 评论(0) 推荐(0) 编辑
摘要: React的很大一部分是将组件控制和管理自己的状态的想法。 当我们将本机HTML表单元素(输入,选择,文本区域等)投入到组合中时会发生什么?我们是否应该使用React作为“单一的真理来源”,就像我们习惯使用React一样,或者我们是否允许表单数据生活在DOM中,就像我们习惯于使用HTML表单元素一样 阅读全文
posted @ 2019-01-18 10:51 一小半 阅读(1801) 评论(0) 推荐(0) 编辑
摘要: 不能保证props.children将是一个数组。 以此代码为例, 如果我们尝试使用props.children.map它来映射孩子,父母内部会抛出错误,因为它props.children是一个对象而不是一个数组。 props.children如果有多个子元素(如此),则React只会生成一个数组 阅读全文
posted @ 2019-01-16 12:09 一小半 阅读(3092) 评论(0) 推荐(0) 编辑
摘要: AJAX请求应该在componentDidMount生命周期事件中。 这有一些原因, Fiber,下一次实施React的对帐算法后,将有能力根据需要开始和停止呈现,以获得性能优势。其中一个取舍之一是组件 WillMount ,其他生命周期事件,它可能有意义的AJAX请求,将是“非确定性”。这意味着R 阅读全文
posted @ 2019-01-15 10:17 一小半 阅读(1230) 评论(0) 推荐(0) 编辑
摘要: 一个回调函数,当setState结束并重新呈现该组件时将被调用。 一些没有说出来的东西是setState是异步的,这就是为什么它需要一个第二个回调函数。通常情况下,最好使用另一种生命周期方法,而不是依赖这个回调函数,但是很高兴知道它存在。 阅读全文
posted @ 2019-01-14 10:28 一小半 阅读(6786) 评论(0) 推荐(1) 编辑
摘要: 当调用setState时,React会做的第一件事是将传递给setState的对象合并到组件的当前状态。 这将启动一个称为和解的过程。和解的最终目标是以最有效的方式,根据这个新的状态更新UI。 为此,React将构建一个React元素的新树(您可以将其视为UI的对象表示)。 一旦有了这棵树,为了弄清 阅读全文
posted @ 2019-01-11 10:30 一小半 阅读(1011) 评论(0) 推荐(1) 编辑
摘要: 这段代码有什么问题? 没有什么是错的🙂。它很少被使用,并不为人所知,但是你也可以传递一个函数给setState,它接收到先前的状态和道具并返回一个新的状态,正如我们在上面所做的那样。而且不仅没有什么问题,而且如果您根据以前的状态设置状态,也会积极推荐。 阅读全文
posted @ 2019-01-10 12:13 一小半 阅读(133) 评论(0) 推荐(0) 编辑
摘要: ref 是一个入口 允许您直接访问DOM元素或组件实例。 为了使用它们,您可以向组件添加一个ref属性,该属性的值是一个回调函数,它将接收底层的DOM元素或组件的已挂接实例作为其第一个参数。 以上注意到我们的输入字段有一个ref属性,其值是一个函数。该函数接收我们然后放在实例上的实际的DOM元素,以 阅读全文
posted @ 2019-01-10 12:12 一小半 阅读(2020) 评论(0) 推荐(0) 编辑
摘要: react 中的key是什么,为什么它们很重要? key 是什么帮助反应跟踪哪些项目已更改,添加或从列表中删除 每个键在兄弟姐妹之间都是独一无二的,这一点非常重要。 我们已经谈过几次关于和解的过程,而且这个和解过程的一部分是用最前面的一个来执行一个新的元素树的差异。 在处理列表时,键使此过程更有效, 阅读全文
posted @ 2019-01-09 09:37 一小半 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 为了解决跨浏览器兼容性问题,您的React中的事件处理程序将传递SyntheticEvent的实例, 它是React的浏览器本机事件的跨浏览器包装器。 这些合成事件与您习惯的本机事件具有相同的界面,但它们在所有浏览器中的工作相同。 这对于性能是有好处的,这也意味着在更新DOM时,React不需要担心 阅读全文
posted @ 2019-01-08 10:07 一小半 阅读(1737) 评论(0) 推荐(0) 编辑
摘要: 很多情况下,我们是通过props来定制组件实例的外观及行为,这样的组件我们称之为无状态/stateless的组件,因为在任何时刻,组件 实例的表现都仅仅取决于外部传入的props属性,与 它自身之前的表现毫无关系,即,它本身没有任何记忆 让一个组件拥有记忆能力,根据自身的状态对同样的刺激做出 不同的 阅读全文
posted @ 2019-01-07 10:43 一小半 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 一、什么是虚拟DOM? render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM。 虚拟DOM是React的一大亮点,具有batching(批处理)和高效的Diff算法。这让我们可以无需担心性能问题而”毫无顾忌”的随时“刷新”整 阅读全文
posted @ 2019-01-04 10:10 一小半 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 如果您尝试使用不被React识别的道具作为合法的DOM属性/属性来渲染DOM元素,那么unknown-prop警告将触发。你应该确保你的DOM元素没有虚假的道具。 这个警告可能会出现几个可能的原因: 为了解决这个问题,复合组件应该“消耗”用于复合组件的任何道具,而不是用于子组件。例: 不好:意外的l 阅读全文
posted @ 2019-01-03 09:43 一小半 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 在使用React的时候,根据官方文档,发现了两种创建组件的方式。一种是使用React.createClass({})的方式来创建,还有一种是使用ES6的class并继承React.Component来创建。 刚开始学的时候自己觉得有点迷,并且一直都是使用ES6语法来创建组件(毕竟先进嘛) 阅读全文
posted @ 2019-01-02 09:41 一小半 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 原因主要是: 这个错误在配合 多次Route的时候会经常出现 Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. Th 阅读全文
posted @ 2018-12-29 11:24 一小半 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 本参考指南记录了SyntheticEvent构成React事件系统一部分的包装器。请参阅处理事件指南了解更多信息。 1. 概观 您的事件处理程序将被传递SyntheticEvent给浏览器本地事件的一个跨浏览器包装的实例。它具有与浏览器的本地事件相同的界面,包括stopPropagation()和p 阅读全文
posted @ 2018-12-28 16:43 一小半 阅读(1194) 评论(0) 推荐(0) 编辑
摘要: 在生活中,浏览器和我们的工作和生活息息相关。做为前端开发,我们代码的应用场景往往是在浏览器上。浏览器对前端的重要性不可一日而语。那么我们对浏览器是否有比较清晰的了解呢?什么是多进程架构浏览器?为什么浏览器内核是多线程?Javascript是单线程又是什么鬼?进程和线程是否分得清楚呢? 1. 进程(p 阅读全文
posted @ 2018-12-27 09:38 一小半 阅读(918) 评论(0) 推荐(0) 编辑
摘要: 话说react 代码贡献量最大的是位妹子。 对此没有“正确的”答案。有些用户更喜欢在Redux中保存每一个数据片段,以便始终保持应用程序的完全可序列化和受控版本。其他人则倾向于在组件的内部状态中保持非关键或UI状态,如“当前打开的下拉列表,按钮是否高亮”。 听听gaearon怎么说 在react中, 阅读全文
posted @ 2018-12-26 09:39 一小半 阅读(2335) 评论(0) 推荐(0) 编辑
摘要: 内核 首先得搞懂浏览器内核究竟指的是什么。 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或 阅读全文
posted @ 2018-12-25 09:35 一小半 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 在单页应用上,前端路由并不陌生。很多前端框架也会有独立开发或推荐配套使用的路由系统。那么,当我们在谈前端路由的时候,还可以谈些什么?本文将简要分析并实现一个的前端路由,并对 react-router 进行分析。 1. 一个极简前端路由实现 说一下前端路由实现的简要原理,以 hash 形式(也可以使用 阅读全文
posted @ 2018-12-24 19:09 一小半 阅读(1928) 评论(0) 推荐(0) 编辑
摘要: 1. 有2个CSS预处理器可供选择: 1.Less http://lesscss.org/ 2.Sass http://sass-lang.com/ 他们都已经存在了好几年了。我们要使用Sass。 2. Sass 和 Scss 的区别 Sass有两种语法可用 sass 本身 后缀是.sass的文件 阅读全文
posted @ 2018-12-21 09:44 一小半 阅读(1514) 评论(0) 推荐(1) 编辑
摘要: 题目就是如上要求,使用纯 CSS,完成单行文本居中显示文字,多行居左显示,最多两行超过用省略号结尾,效果如下: 不愿看长篇大论的可以先看看效果:-webkit- 内核下 Demo 戳我 接下来就一步一步来实现这个效果。 1. 1.首先是单行居中,多行居左 居中需要用到 text-align:cent 阅读全文
posted @ 2018-12-20 17:52 一小半 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 本质上,这两种方式都是为了加载css文件,但还是存在细微的差别。 差别1:老祖宗的差别,link属于XHTML标签,而@import完全是css提供的一种方式。 link标签除了可以加载css外,还可以做很多其他的事情,比如定义RSS,定义rel连接属性等,@import只能加载CSS。 差别2:加 阅读全文
posted @ 2018-12-19 10:11 一小半 阅读(14528) 评论(2) 推荐(9) 编辑
摘要: CSS 选择符: id选择器(# myid) 类选择器(.myclassname) 标签选择器(div, h1, p) 相邻选择器(h1 + p) 子选择器(ul > li) 后代选择器(li a) 通配符选择器( * ) 属性选择器(a[rel = "external"]) 伪类选择器(a: ho 阅读全文
posted @ 2018-12-18 10:32 一小半 阅读(290) 评论(0) 推荐(0) 编辑