- 博客(34)
- 收藏
- 关注
原创 【React】函数组件hooks
采用数组解构,第一个为state属性,第二个为更改state的方法(setState)使用同样有两种写法,但多次调用最后都会合并对象式函数式:参数为当前stateuseState()参数为初始值,并会作为缓存,所以不会随着 render 而调用参数:模拟componentWillUnmount:callback内再 return 一个 callbackuseRef和类组件用法相似FragmentFragment不会被渲染(类似vue的template)F
2022-08-29 14:58:26 315
原创 【React】组件通信与redux
父传子(props):父通过props传递参数子传父(props):父通过props传递一个回调函数祖传孙(React.createContext)
2022-08-29 13:26:29 237
原创 【React】介绍
jsx:是一种语法糖,需要通过babel转为createElement方式。处理表单时,设置了checked 属性就必须设置 onChange 事件。样式如果有多个单词,需要使用小驼峰形式。React采用小驼峰写法封装了所有事件。中,因为是表达式,所以还需要一层。事件绑定也需要使用小驼峰形式。标签小写识别为html标签。柯里化(每个参数只有一个)不用柯里化(接受多个参数)在jsx里可以写 js。会被立刻调用,最好不要加。表达式:能拿变量接收到。标签大驼峰式识别为组件。............
2022-08-26 14:29:34 75
原创 【数据检测的原理】
并且该属性使用的地方有很多,而且类型还不一样,既有可能是模板,也有可能是用户写的一个watch。收集谁,换句话说,就是当属性发生变化后,通知谁。是一个中介的角色,数据发生变化时通知它,然后它再通知其他地方。这时就需要一个能集中处理这些情况的类,就叫他为watcher。在getter中收集依赖,在setter中触发依赖。发生变化时,把之前收集好的依赖循环触发一遍。在上面的代码中,我们收集的依赖是。假设依赖是一个函数,保存在。的地方收集起来,然后等。先收集依赖,把用到数据。的值发生变化时,通知。
2022-08-22 17:06:21 84
原创 【JS】Proxy(代理)与Reflect(反射)
只有在代理对象上执行这些操作才会触发捕获器如果想使用原来的效果,可以手写逻辑,但并非所有都像 get()那么简单。因此,通过手动写码如法炮制的想法是不现实的,所以可以通过调用全局 Reflect 对象上(封装了原始行为)的同名方法来轻松重建。所有可捕获的方法,Reflect都有相对应的同名方法get() {} };//空代理对象可以简化 const handler = {...
2022-07-18 12:20:18 360
原创 【JS】Json
每个JSON对象就是一个值,可能是一个数组或对象,也可能是一个原始类型的值。总之,只能是一个值,不能是两个或更多的值。数组或对象最后一个成员的后面,不能加逗号。【键】【值】注意,null、空数组和空对象都是合法的JSON值。...
2022-07-18 12:18:54 84
原创 【JS】Module
实现代码复用CommonJS是node广泛使用的模块化规范,它是一种同步加载模块依赖的方式。ES6ModuleES6推出的一套模块化规范AMD是JS模块加载库RequireJS提出并且完善的一套模块化规范,AMD是异步加载模块依赖的。CMD(国产库SeaJS提出来的一套模块规范)UMD(兼容CommonJS和AMD)除了JavaScript的模块化,在CSS样式中也可以采用@import的方法来引入需要的CSS。...
2022-07-18 12:18:16 129
原创 【JS】Symbol
用途确保对象属性使用唯一标识符,不会发生属性命名冲突Symbol()创建,参数为描述不能使用new不能与其他类型运算在对象内不会自动转换为字符串不能使用.,只能用[]
2022-07-18 12:16:42 202
原创 【JS】String
字符串的内部格式始终是UTF-16,它不依赖于页面编码,只能通过拼接重新赋值字符串的原型上暴露了一个方法es6之前只支持两字节的字符,不支持四字节的字符es6提供了大括号可以解决返回给定索引位置的字符,功能同返回指定索引的字符编码根据参数编码返回字符。...
2022-07-18 12:16:07 554
原创 【JS】RegExp
两种声明方法//使用\,如需要转义等操作需要加两个空格也是一个字符正则互不相等元字符需要转义默认情况下,匹配成功一次,就会终止匹配,lasIndex始终为0lastIndex匹配一切字符(常用)[\s\S][^]s....
2022-07-18 12:14:48 220
原创 【JS】Map和Set
ObjectSymbolArray以下四个查找键名时使用比较(类似于严格相等,但识别NaN)MapSetWeakSetWeakMap。
2022-07-18 12:13:32 149
原创 【JS】Array
跟其他语言中的数组一样,Array也是一组有序的数据,不同的是,数组中每个槽位可以存储任意类型的数据;数组也是动态大小的,会随着数据添加而自动增长。数组内存地址本质上不是连续的(会分配连续空间)push/pop方法运行的比较快,而比较慢。数组的原型对象(prototype)的数据类型也是数组数组默认按照字典序比较大小indexOf()、lastIndexOf()和includes()判断是否为数组Array.from将类数组或可迭代的对象转为数组,并返回。......
2022-07-17 12:47:26 116
原创 【JS】Function
用于接受函数参数,只能放在末尾,并返回一个数组(arguments是类数组)比如setTImeout,Promise。,this指向外层的this(静态指向)具有iterator接口的对象也可以展开。频繁操作,有规律的获取(开锁,关锁)调用该函数,内部会实例化对象并返回。可以使用尾递归进行优化。,从返回的位置往回执行。...
2022-07-17 12:46:56 113
原创 【JS】Object
Number浮点数,存在精度误差问题BigInt精度更大String采用UTF-16格式存储,但是对UTF-16的支持是不完整的只支持两字节的字符,不支持四字节的字符Boolean只有undefined,null,0,NaN,‘’会转为false[],{}是会转为trueif等流控制语句会自动给进行布尔值的转换空对象指针。......
2022-07-17 12:44:19 160
原创 【JS】数据类型
Number浮点数,存在精度误差问题BigInt精度更大String采用UTF-16格式存储,但是对UTF-16的支持是不完整的只支持两字节的字符,不支持四字节的字符Boolean只有undefined,null,0,NaN,‘’会转为false[],{}是会转为trueif等流控制语句会自动给进行布尔值的转换空对象指针。...
2022-07-17 12:43:25 55
原创 【JS】Iterator
/生成器函数声明function*generatorFn(){}//生成器函数表达式letgeneratorFn=function*(){}//作为对象字面量方法的生成器函数letfoo={}}//作为类实例方法的生成器函数classFoo{}}//作为类静态方法的生成器函数classBar{}}生成器的形式是一个函数,函数名称前面加一个星号(*)表示它是一个生成器箭头函数不能用来定义生成器函数。...
2022-07-17 12:42:10 721
原创 【JS】prototype
当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去它的原型对象里找这个属性,这个原型对象又会有自己的原型,于是就这样一直找下去,也就是原型链的概念。任何函数(除了箭头函数)都可以作为构造函数。创建一个空对象,作为将要返回的对象实例。函数自己既是构造函数,又是实例化对象。用于实例化对象的函数叫构造函数。执行构造函数其余的内部代码。用于存放共同的属性和方法。,原型链的尽头是null。属性,指向其构造函数。指向,指向这个空对象。...
2022-07-17 12:41:10 102
原创 【JS】上下文与垃圾回收机制
不同的宿主环境,全局上下文的对象可能也不同var声明的全局变量会定义在全局对象上没有声明,只有赋值的变量会定义在全局上下文中函数参数被认为是当前上下文中的变量if、for等,没有上下文限制(坑)在使用循环时,会污染上下文(坑)循环内为异步时因为没有上下文限制,所以没有对象去保存相关信息。...
2022-07-17 12:39:27 143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人