摘要: 今天有同事找到我说,本地js 编译不过,编译不过的代码如下 const host = window?.location?.host || 'localhost'; 是option chaining, 但我本地是编译过的,他把? 删除了,肯定没有问题了,我就没管了。过了几天,又一个同事给我说,他本地也 阅读全文
posted @ 2020-04-20 22:28 SamWeb 阅读(779) 评论(0) 推荐(1) 编辑
摘要: 在js 中,数组就是对象,除了可以使用字面量语法[...]来声明数组外,它和其它对象没有什么区别。当创建一个数组[‘a’, ‘b’, ‘c’]时,内部的实现形式如下: { length: 3, 0: 'a', 1, 'b', 2, 'c' } 可以使用Object.assgin 和对象解构的方式来验 阅读全文
posted @ 2020-04-03 15:02 SamWeb 阅读(258) 评论(0) 推荐(1) 编辑
摘要: React Hooks 都是函数,使用React Hooks,就是调用函数。React Hooks在函数组件中使用,当React渲染函数组件时(也是调用函数),组件里的每一行代码都会被执行,一个个的Hooks也就会被执行。 useState() 使函数组件能够保存状态。通常来说,函数执行完毕,其内部 阅读全文
posted @ 2019-11-28 20:42 SamWeb 阅读(6365) 评论(0) 推荐(2) 编辑
摘要: Jest 命令行窗口中的指令 在学习Jest单元测试入门的时候,给Jest命令提供了一个参数 --watchAll, 让它监听测试文件或测试文件引入的文件的变化,从而时时进行测试。但这样做也带来一个问题,只要改变一点内容,Jest就会把所有的测试都跑一遍,有点浪费资源。有没有可能对--watchAl 阅读全文
posted @ 2019-11-09 18:35 SamWeb 阅读(4754) 评论(2) 推荐(1) 编辑
摘要: 首先是为什么要写单元测试? 主要还是测试我们代码有没有达到预期的效果,其次,如果严格按照TDD(测试驱动开发)来进行开发的话,我们还会更加注重产品细节,代码可能更加健壮。因为TDD是测试放到第一位,写代码之前,先写测试。测试怎么写?肯定是思考产品的各种使用场景,以及在每种场景下,会有什么效果或异常, 阅读全文
posted @ 2019-09-07 16:12 SamWeb 阅读(20887) 评论(0) 推荐(5) 编辑
摘要: 当Redux 和React 相接合,就是使用Redux进行状态管理,使用React 开发页面UI。相比传统的html, 使用React 开发页面,确实带来了很多好处,组件化,代码复用,但是和Redux 接合时,组件化却也带来了一定的问题,组件层层嵌套,有成千上百个,而store确只有一个,组件中怎么 阅读全文
posted @ 2019-08-18 23:00 SamWeb 阅读(1025) 评论(1) 推荐(0) 编辑
摘要: React 有一个特殊的属性children, 主要用于组件需要渲染内容,但它并不知道具体要渲染什么内容,怎么会有这种使用场景?确实比较少,但并不是没有,比如弹出框。当你写一个弹出框组件的时候,你知道它要弹出什么吗?肯定不知道,只有使用的时候才知道。那为什么要写弹出框组件?虽然内容不一样,但框是一致 阅读全文
posted @ 2019-08-17 10:48 SamWeb 阅读(4155) 评论(0) 推荐(1) 编辑
摘要: 回顾一下Redux的数据流转,用户点击按钮发送了一个action, reducer 就根据action 和以前的state 计算出了新的state, store.subscribe 方法的回调函数中 store.getState() 获取新的state, 把state 注入到页面元素中,实现页面状态 阅读全文
posted @ 2019-08-11 15:36 SamWeb 阅读(1580) 评论(4) 推荐(0) 编辑
摘要: Redux用做状态管理,有三个基本的原则 1,整个应用的状态(state)都存在一个普通的JS对象中。比如管理用户的用户列表,可以如下表示 const state = [ { id: 1, name: 'sam', age: '20' }, { id: 2, name: 'josn', age: ' 阅读全文
posted @ 2019-08-10 11:39 SamWeb 阅读(774) 评论(0) 推荐(1) 编辑
摘要: 类型 类型是一组固有的、内置的特征,对于JS引擎和开发人员来说,它可以唯一地标识特定值的行为,并将其与其他值区分开来。换句话说,如果JS引擎和开发人员都把42和‘42’看作不同,区别对待,那么它们两个就是不同的类型。当使用42时, 可能进行算术运算,使用'42', 可能进行字符串处理,比如输出到控制 阅读全文
posted @ 2019-06-06 12:39 SamWeb 阅读(4198) 评论(0) 推荐(0) 编辑