• 优化context并实现读写分离

    优化Context并实现读写分离为什么要实现读写分离?可以更好地管理组件状态、代码可读性更高、维护更加简单//定义content.jsimport{createContext,useContext}from'react'constLogDispatch=createContext();constLo...

    React-Hooks设计动机

    React-Hooks设计动机​在React中,有类组件和函数组件两种看似不同但却有着某种血缘关系的组件。首先来看类组件,在类组件中,我们只需要轻轻地继承一个React.component就可以使一个类组件得到很多的东西,而且这些东西都是现成的我们直接去调用就可以了,这一切只是因为我们继承了一个Re...

    React.createContext

    ContextContext提供了一个无需为每层组件手动添加props,就能在组件树间进行数据传递的方法。在一个典型的React应用中,数据是通过props属性自上而下(由父及子)进行传递的,但这种做法对于某些类型的属性而言是极其繁琐的(例如:地区偏好,UI主题),这些属性是应用程序中许多组件都需要...

    新手究极搭建react-antive教程

    首先说明,react-native对新手很不友好,按照官网说的会遇到很多的问题。pod install 卡住...

    01-Dart变量

    重要概念任何保存在变量中的都是一个对象,并且所有的对象都是对应一个类的实例。无论是数字、函数和null都是对象,并且所有对象继承自Object类。尽管Dart是强类型的,但是Dart可以推断类型,所有类型注释是可选的。Dart支持泛型,如List<int>(整数列表)或List<d...

    19-class基础语法

    引入了`Class(类)`这个概念作为对象的模板。通过`class`关键字可以定义类。基本上,ES6中的`class`可以看作是一个语法糖,它的绝大部分功能,ES5都可以做到,新的`class`写法只是让对象原型的写法更加清晰,更像面向对象编程的语法而已。...

    18-__proto__属性

    __proto__属性用来读取或设置当前对象的prototype对象。目前,所有的浏览器都部署了这个属性。...

    17-寄生组合式继承

    为了解决组合式继承带来的问题,出现了寄生组合式继承,既通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。不必为了指定子类型的原型而调用超类型的构造函数,我们所需要的无非就是超类型原型的一个副本而已。本质就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。...

    16-原型式继承

    `ECMAscript5`通过新增`Object.create()`方法规范化了原型式继承。这个方法接收两个参数:一是用作新对象原型的对象和(可选的)一个为新对象定义额外属性的对象。...

    15-组合继承

    组合继承有时候也叫伪经典继承,值的是将原型链和借用构造函数的技术组合到一块。从而发挥二者之长的一种继承模式。其背后的思路是使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样,即通过在原型上定义了函数实现,又能够保证每个实例都有它自己的属性。...

    14-借用构造函数

    在解决原型中包含引用类型值所带来问题的过程中,开发人员使用一种叫做借用构造函数的技术有时候也叫伪造对象或经典继承。这种技术的基本思想相当简单,既在子类型构造函数的内部调用超类型构造函数。...

    13-原型链

    ECMAscript中描述了原型链的概念,并将原型链作为实现继承的主要办法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。简单回顾一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。...

    12-稳妥构造函数模式

    所谓稳妥对象,指的是没有公共属性,而且其方法也不引用this的对象。稳妥对象最适合在一些安全的环境中(这些环境中会禁止使用`this`和`new`),或者防止数据被其他应用程序改动时使用。稳妥构造函数遵循与寄生构造函数类似的模式,但是有两点不同:一是新创建对象的实例方法不引用`this`;二是不使用`new`操作符调用构造函数。...

    11-寄生构造函数模式

    寄生构造函数模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象;但是从表面上看,这个函数很像是典型的构造函数。...

    10-动态原型模式

    动态原型模式把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的有点。换句话说,可以通过检查某个应该存在的方法是否有效,来解决是否需要初始化原型。...

    09-组合使用构造函数模式和原型模式

    创建自定义类型的最常用方式,就是组合使用构造函数模式与原型模式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度地节省了内存。另外,这种混合模式还支持向构造函数传递参数;可谓集两种模式之长。...

    08-原型对象的问题

    原型模式也不是没有缺点。首先,它省略了为构造函数传递初始化参数这一个环节,结果所有实例在默认情况下都将取得相同的属性值。虽然这会在某种程度上带来一些不方便,但还不是原型的最大的问题,原型模式最大的问题是由其共享的本质所导致的。...

    07-原生对象的原型

    通过原生对象的原型,不仅可以取得所有默认方法的引用,而且可以定义新的方法。可以修改自定义对象的原型一样修改原生对象的原型,因此可以随时添加新的方法。...

    05-更简单的原型语法

    每添加一个属性就要敲一遍`Person.prototype`,为了减少不必要的输入,也为了从视觉上更好地封装原型地功能,更常见的做法使用一个包含所有属性和方法的对象字面量来重写整个原型对象...

    04-原型与in操作符

    有两种方式使用in操作符:单独使用和在for-in循环中使用。在单独使用时,in操作符会在通过对象能够访问给定属性时返回true,无论该属性存在于实例还是原型中。...

    03-理解原型对象

    无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象。在默认情况下,所有的原型对象都会自动获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针,也就是指向这个新函数本身。不过需要注意的是这样的链接关系只存在于实例与构造函数的原型对象之间,而不是实例与构造函数之间...

    02-工厂模式、构造函数模式与原型模式

    虽然Object构造函数或对象字面量都可以用来创建单个对象 但这些方法有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码 为解决这个问题,人们开始使用工厂模式的一种变体。...

    01-究极数据属性解析

    属性类型ECMAscript中有两种属性:数据属性和访问器属性。数据属性:​数据属性包括一个数据值的位置。在这个位置可以读取和写入值。​数据属性有4个描述其行为的特性:​[[Configurable]]:默认为false,表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否......

    React-redux与Redux

    Redux中文文档https://www.redux.org.cn/React-redux中文文档https://www.redux.org.cn/docs/react-redux/Redux是JavaScript状态容器,提供可预测化的状态管理,如果通俗地一点来讲,那么Redux可以看做是一个数据...

    react-router钩子函数

    react的路由钩子函数主要有四种:⭐️useHistory⭐️useLocation⭐️useParams⭐️useRouteMatch但是使用这些钩子函数React版本必须>=16.8useHistory这个钩子可以访问history,可以更好的进行导航首先声明此钩子函数importRea...

    React生命周期

    首先,React生命周期分为三个阶段:挂载、渲染和卸载。由三种不同的形式组成:render渲染、props改变和state改变。由两种过程组成:挂载卸载过程、更新过程。下面是React16.x版本之前的生命周期旧生命周期1.挂载卸载过程1.1.constructor()当组件被实例化之后,即使不手写...

    元素等待-显式等待与隐式等待

    首先,了解元素等待需要先知道浏览器的工作方式。浏览器在解析HTML文件时,需要从第一行按顺序往下解析。不仅仅解析HTML文件如此,解析JS文件也是这样,但是浏览器解析JS文件就比解析HTML文件要复杂地多的多。对于许多页面来说,页面需要加载数据来驱动视图,数据没加载完成,页面就不会显示对应的...

    windows、macOS安装selenium以及浏览器插件

    windows、macOS安装seleniummacOs首先,macOs安装selenium已经默认拥有python环境第一步:下载pip(pip是基于python的包管理工具)https://pypi.org/project/pip/#files需要将.whl文件和压缩文件都下载下来![image...

    2020-4-18下午六点的梦

    在一栋教学楼,其他的教室都开着灯,只有我在的这个教室和旁边的教室没开灯,旁边的教室很像我高三时候的教室,里面坐满了人,都好像在复习的样子,很安静,即使黑黑一片也没人嘈杂,教室的最后面有一束光很刺眼,好像是手机的闪光灯一直开着。教学楼的布局很奇怪,我在的这个教室好像就是个大走廊,没有看到门,但是我是从...

    Node.js-FileSystem模块的日常使用

    Node.js-fs模块概念:文件系统(FileSystem),主要用于对系统文件及目录进行读写操作,所有文件系统操作都具有异步和同步的形式。...