自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(309)
  • 资源 (17)
  • 收藏
  • 关注

原创 react学习—DebugValueHook

DebugValueHook一、DebugValueHook一、DebugValueHookuseDebugValue:用于将自定义Hook的关联数据显示到调试栏function useTest(){ const [students, ] = useState([]) return students;}export default function App() { useState(0) useState("abc") useEffect(() =>

2021-11-28 15:37:15 690

原创 Diff算法—前端框架的基石

Diff算法—前端框架的基石一、Diff算法一、Diff算法什么是Diff算法——比较差异算法(找出必须要更新的DOM的办法)。比较什么差异——DOM树差异。如何比较——用js模拟真实dom(virtual dom—虚拟DOM),比较DOM树变化前后的差异虚拟DOM就是利用js运行速度快的这一优点对操作DOM进行优化的,用js模拟DOM树把DOM的对比,放在Js层来做。提高重绘性能。真实DOM虚拟DOMDiff算法的作用是用来计算出 Virtual DOM 中被改变的部分,然后针对该部

2021-10-17 21:10:34 682

原创 react学习—LayoutEffectHook

LayoutEffectHook一、LayoutEffectHook2、注意一、LayoutEffectHook如果我们需要在页面刷新前一刻操作Dom等, 从生命周期来看很明显可以使用componentDidMount或者componentDidUpdate,但是在函数组件当中我们没办法使用这些生命周期函数该怎么办呢?于是react提供了LayoutEffectHook。该函数的用法和useEffect是一样import React, { useState, useLayoutEffect, u

2021-07-11 22:30:33 422

原创 react学习—ImperativeHandle Hook

这里写目录标题一、ImperativeHandle Hook1、情景想象2、功能实现一、ImperativeHandle Hook1、情景想象如果某种情况下你需要手动触发某个组件内部的方法时,你会怎么做呢?很容易想到使用ref调动该组件的事件即可,但是这里使用的是类组件,学习了hook后我们发现函数组件更加好用,那么我们怎么能够调用函数组件中的事件呢?import React, { useRef } from 'react'class Test extends React.Component

2021-07-11 22:19:58 231

原创 react学习—ref Hook

ref Hook一、ref Hook一、ref HookuseRef函数:一个参数:默认值返回一个固定的对象,{current: 值}import React, { createRef, useState } from 'react'export default function App() { const inpRef = createRef; const [n, setN] = useState(0); return ( <div> <input re

2021-05-23 21:08:43 804 5

原创 react学习—Memo Hook

Memo Hook一、Memo Hook一、Memo Hook用于保持一些比较稳定的数据,通常用于性能优化如果React元素本身的引用没有发生变化,一定不会重新渲染例:import React, { useState, useCallback } from 'react'function Item(props) { return <li>{props.value}</li>}export default function App() { const [range,

2021-05-18 11:24:29 243

原创 react学习—Callback Hook

Callback Hook一、Callback Hook一、Callback Hook函数名:useCallback用于得到一个固定引用值的函数,通常用它进行性能优化useCallback:该函数有两个参数:函数,useCallback会固定该函数的引用,只要依赖项没有发生变化,则始终返回之前函数的地址数组,记录依赖项该函数返回:引用相对固定的函数地址例://App.jsimport React, { useState } from 'react'class Test exten

2021-05-18 10:42:00 538 1

原创 react学习—Context Hook

Context Hook一、Context Hook一、Context Hook按之前学习的知识,我们使用上下文的话import React from 'react'const ctx = React.createContext()function Test() { return <ctx.Consumer> {value => <h1>Test上下文:{value}</h1>} </ctx.Consumer>}exp

2021-05-17 23:52:51 296

原创 react学习—Reducer Hook

Reducer Hook一、Reducer Hook一、Reducer HookFlux:Facebook出品的一个数据流框架规定了数据是单向流动的数据存储在数据仓库中(目前,可以认为state就是一个存储数据的仓库)action是改变数据的唯一原因(本质上就是一个对象,action有两个属性)type:字符串,动作的类型payload:任意类型,动作发生后的附加信息例如,如果是添加一个学生,action可以描述为:{ type:"addStudent", payload: {学生对

2021-05-17 12:49:49 647

原创 react学习—自定义Hook

自定义Hook一、自定义Hook一、自定义HookState Hook: useStateEffect Hook:useEffect自定义Hook:将一些常用的、跨越多个组件的Hook功能,抽离出去形成一个函数,该函数就是自定义Hook,自定义Hook,由于其内部需要使用Hook功能,所以它本身也需要按照Hook的规则实现:函数名必须以use开头调用自定义Hook函数时,应该放到顶层例如:很多组件都需要在第一次加载完成后,获取所有学生数据//useAllStudentsimpor

2021-05-17 08:51:45 329

原创 react学习—Effect Hook

Effect Hook一、Effect Hook2、细节一、Effect HookEffect Hook:用于在函数组件中处理副作用副作用:ajax请求计时器其他异步操作更改真实DOM对象本地存储其他会对外部产生影响的操作import React,{useState,useEffect} from 'react'export default function App() { const [n,setN] = useState(0); //改变网页标题就属于副作用,所以在E

2021-05-16 23:10:09 434 2

原创 react学习—State Hook

State Hook一、State Hook1、useState2、useState原理3、注意的细节一、State Hook1、useStateState Hook是一个在函数组件中使用的函数(useState),用于在函数组件中使用状态useState函数有一个参数,这个参数的值表示状态的默认值函数的返回值是一个数组,该数组一定包含两项第一项:当前状态的值第二项:改变状态的函数一个函数组件中可以有多个状态,这种做法非常有利于横向切分关注点。在类组件中写一个加减器:clas

2021-05-16 17:45:22 217 1

原创 react学习—了解Hook

了解Hook一、HOOK简介一、HOOK简介HOOK是React16.8.0之后出现组件:无状态组件(函数组件)、类组件类组件中的麻烦:this指向问题繁琐的生命周期其他问题HOOK专门用于增强函数组件的功能(HOOK在类组件中是不能使用的),使之理论上可以成为类组件的替代品官方强调:没有必要更改已经完成的类组件,官方目前没有计划取消类组件,只是鼓励使用函数组件HOOK(钩子)本质上是一个函数(命名上总是以use开头),该函数可以挂载任何功能HOOK种类:useSt

2021-05-16 14:59:43 149

原创 react学习—常用工具

常用工具一、常用工具1、严格模式2、Profiler一、常用工具1、严格模式StrictMode(React.StrictMode),本质是一个组件,该组件不进行UI渲染(React.Fragment <> </>),它的作用是,在渲染内部组件时,发现不合适的代码。识别不安全的生命周期//Appimport React, { Component } from 'react'export default class App extends Component {

2021-05-16 13:16:26 167

原创 react学习—渲染过程(更新和卸载)

这里写目录标题一、渲染过程1、更新一、渲染过程1、更新更新的场景:重新调用ReactDOM.render,触发根节点更新在类组件的实例对象中调用setState,会导致该实例所在的节点更新节点的更新如果调用的是ReactDOM.render,进入根节点的对比(diff)更新如果调用的是setState运行生命周期函数,static getDerivedStateFromProps运行shouldComponentUpdate,如果该函数返回false,终止当前流程

2021-05-15 23:56:44 349

原创 react学习—渲染过程(首次渲染)

渲染过程一、渲染过程1、渲染原理2、首次渲染(新节点渲染)一、渲染过程1、渲染原理渲染:生成用于显示的对象,以及将这些对象形成真实的DOM对象React元素:React Element,通过React.createElement创建(语法糖:JSX)例如:<div><h1>标题</h1></div><App />React节点:专门用于渲染到UI界面的对象,React会通过React元素,创建React节点,ReactD

2021-05-15 15:23:10 1020

原创 react学习—React事件

React事件1.React中的事件1.React中的事件这里的事件:React内置的DOM组件中的事件给document注册事件几乎所有的元素的事件处理,均在document的事件中处理一些不冒泡的事件,是直接在元素上监听一些document上面没有的事件,直接在元素上监听在document的事件处理,React会根据虚拟DOM树的完成事件函数的调用React的事件参数,并非真实的DOM事件参数,是React合成的一个对象,该对象类似于真实DOM的事件参数stopPropaga

2021-05-14 18:03:22 278 1

原创 react学习—边界错误

边界错误一、边界错误1、使用错误边界一、边界错误默认情况下,若一个组件在渲染期间(render)发生错误,会导致整个组件树全部被卸载import React from 'react'import ErrorBound from "./components/common/ErrorBound"function Comp1() { return <div style={{ width: "90%", height: 500, border

2021-05-14 17:29:13 709 5

原创 react学习—Portals

Portals一、Portals一、Portals插槽:将一个React元素渲染到指定的DOM容器中ReactDOM.createPortal(React元素, 真实的DOM容器),该函数返回一个React元素//public<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" /> <link rel="shortcut icon" href="%PUBL

2021-05-14 15:28:48 344

原创 react学习—Render props

这里写目录标题一、Render props1、场景2、render props一、Render props1、场景import React, { PureComponent } from 'react'import "./style.css"export default class MovablePanel extends PureComponent { state = { x: 0, y: 0 } divRef = React.cre

2021-05-14 15:07:36 170

原创 react学习—PureComponent纯组件

PureComponent纯组件一、PureComponent纯组件1、任务列表2、添加任务3、性能优化1.使用PureComponent一、PureComponent纯组件纯组件用于避免不必要的渲染(render函数),提高效率1、任务列表//Task.jsimport React, { Component } from 'react'import PropTypes from "prop-types"import './Task.css'export default class Tas

2021-05-14 11:53:41 517 3

原创 react学习—新版Context

这里写目录标题一、新版Context1、创建上下文一、新版Context旧版API存在严重的效率问题,并且容易导致滥用1、创建上下文上下文是一个独立于组件的对象,该对象通过React.createContext(默认值)创建返回的是一个包含两个属性的对象Provider属性:生产者。一个组件,该组件会创建一个上下文,该组件有一个value属性,通过该属性,可以为其数据赋值import React, { Component } from 'react'const ctx = React.c

2021-05-13 18:00:41 278 4

原创 react学习—旧版Context

旧版Context一、旧版Context1、声明Context2、使用Context一、旧版Context1、声明Context上下文:Context,表示做某一些事情的环境React中的上下文特点:当某个组件创建了上下文后,上下文中的数据,会被所有后代组件共享如果某个组件依赖了上下文,会导致该组件不再纯粹(外部数据仅来源于属性props)一般情况下,用于第三方组件(通用组件)import React, { Component } from 'react'import PropType

2021-05-06 00:18:40 276 3

原创 react学习—ref转发

ref转发一、ref转发1、函数组件转发2、类组件转发3、实例一、ref转发前面我们将ref时提到了,ref并不能作用于函数组件,因为react觉得函数组件只返回一个dom并没有多大意义。那么如果我们一定要对函数组件使用ref怎么办呢?1、函数组件转发import React, { Component } from 'react'function A(props) { return ( <div> <span>{props.words}</s

2021-05-05 11:33:05 618 2

原创 react学习—ref

ref一、ref1、ref基础2、ref标记一个组件3、ref使用对象4、ref使用函数1.行间函数2.声明调用一、ref1、ref基础如果我们需要通过一些操作获取某些dom元素怎么办呢?如点击按钮使得输入框对焦,用js的document当然可以,但是react中提供了更好地方法ref。import React, { Component } from 'react'export default class Comp extends Component { handleClick = ()

2021-04-29 00:15:25 196

原创 react学习—高阶组件HOC

高阶组件HOC一、高阶组件HOC一、高阶组件HOCHOF:Higher-Order Function, 高阶函数,以函数作为参数,并返回一个函数HOC: Higher-Order Component, 高阶组件,以组件作为参数,并返回一个组件

2021-04-26 16:56:06 314

原创 react学习—属性默认值和类型验证

属性默认值和类型验证一、属性默认值1、函数组件属性默认值2、类组件默认属性值二、属性类型验证1、常见值类型2、是否必传isRequired3、其它类型验证4、自定义验证一、属性默认值通过一个静态属性defaultProps告知react属性默认值1、函数组件属性默认值//FuncDefault.jsimport React from 'react'export default function FuncDefault(props) { return ( <div>

2021-04-25 15:07:18 608

原创 react—表单

表单一、表单1、value1.defaultValue2.onChange3.灵活使用2、checked一、表单受控组件和非受控组件受控组件: 组件的使用者,有能力完全控制该组件的行为和内容。通常情况下,受控组件往往没有自身的状态,其内容完全收到属性的控制。非受控组件: 组件的使用者,没有能力控制该组件的行为和内容,组件的行为和内容完全自行控制。表单组件,默认情况下是非受控组件,一旦设置了表单组件的value属性,则其变为受控组件(单选和多选框需要设置checked)1、value//app.

2021-04-21 11:15:10 391

原创 react学习—传递元素内容

传递元素内容一、传递元素内容一、传递元素内容前面我们学习了传递一些属性给自定义组件,这里我们学习传递元素给自定义组件。//Comp组件export default function Comp(props) { console.log(props); return ( <div className="comp"> <h1>组件自身的内容</h1> {props.html || <h

2021-04-18 18:48:33 326

原创 react学习—新版生命周期

新版生命周期一、新版生命周期1.getDerivedStateFromProps2.getSnapshotBeforeUpdate一、新版生命周期React >= 16.0.0相比旧版生命周期:挂在阶段,新版移除了componentWillMount,使用getDerivedStateFromProps代替。更新阶段,新版移除了componentWillReceiveProps,仍然使用getDerivedStateFromProps。移除了componentWillUpdate,新增了r

2021-04-18 18:30:48 352

原创 react学习—旧版生命周期

旧版生命周期1、旧版生命周期1.初始化阶段constructor2.组件即将挂载componentWillMount3.虚拟DOM render4.虚拟DOM已挂载到页面成为真实DOM5.componentWillReceiveProps6.shouldComponentUpdate7.componentWillUpdate8.componentDidUpdate9.componentWillUnmount生命周期:组件从诞生到销毁会经历一系列的过程,该过程就叫做生命周期。React在组件的生命周期中提供

2021-04-18 17:11:03 288

原创 react学习—深入剖析setState

深入剖析setState一、深入剖析setState1、setState是同步还是异步2、如何及时获取异步后的状态值3、react的render优化一、深入剖析setState1、setState是同步还是异步情景//index.jaimport React from 'react';import ReactDOM from 'react-dom';import Comp from './Comp'ReactDOM.render(<Comp n={0} />, document

2021-04-18 11:30:20 157

原创 react学习—事件

事件一、事件1、内置组件事件2、自定义组件事件一、事件在React中,组件的事件,本质上就是一个属性按照之前React对组件的约定,由于事件本质上是一个属性,因此也需要使用小驼峰命名法1、内置组件事件import React from 'react';import ReactDOM from 'react-dom';function handleClick(e){ console.log("点击了!");}const btn = <button onClick={handle

2021-04-17 23:08:11 220

原创 react学习—组件状态

组件状态一、组件状态1、状态初始化2、状态的变化一、组件状态//components/Timer.jsimport React, { Component } from 'react'export default class Tick extends Component { render() { return (<h1>{this.props.time}</h1>); }}//index.jsimport React from 'react';imp

2021-04-17 17:24:48 325

原创 react学习—组件和组件属性

组件和组件属性一、组件1、函数组件2、 类组件二、属性1、函数组件的属性2、类组件的属性3、组件无法改变自身的属性一、组件1、函数组件返回一个React元素可以将函数组件直接在表达式中执行。(不推荐)function MyFuncComp(){ return <h1>h1标签</h1>}ReactDOM.render(<div>{MyFuncComp()}</div>, document.getElementById('root'));因

2021-04-17 14:51:31 267

原创 react学习—JSX

JSX一、JSX1、什么是JSX2、在JSX中嵌入表达式一、JSX1、什么是JSXFacebook起草的JS扩展语法本质是一个JS对象,会被babel编译,最终会被转换为React.createElementconst h1 = <h1>hello world <span>span</span></h1>;ReactDOM.render(h1, document.getElementById("root"));实际是因为babel将jsx

2021-04-17 00:14:49 238 1

原创 react学习—搭建脚手架和开发环境配置

搭建脚手架一、搭建脚手架1、使用脚手架搭建工程2、创建项目二、开发环境配置一、搭建脚手架1、使用脚手架搭建工程react常用搭建方式有两种:官方:create-react-app第三方:next.js、umijs这里我们刚开始接触react,所以使用官方的脚手架。2、创建项目使用yarn create react-app ***即可创建react项目,如果未安装yarn,可使用npm install -g yarn命令先安装yarn。接着使用yarn start启动我们的react工程。

2021-04-15 23:59:19 287 1

原创 react学习—hello world

hello world一、初用react1、React.createElement2、JSX一、初用react1、React.createElement<div id="root"></div><!-- React的核心库,与宿主环境无关 --><script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script><!-- 依赖

2021-04-14 23:55:10 353 4

原创 react学习—React概述

React概述一、什么是React?二、React的特点1、对比Vue一、什么是React?React是由Facebook研发的、用于解决UI复杂度的开源JavaScript库,目前由React联合社区维护。它不是框架,只是为了解决UI复杂度而诞生的一个库二、React的特点轻量:React的开发版所有源码(包含注释)仅3000多行原生:所有的React的代码都是用原生JS书写而成的,(几乎)不依赖其他任何库易扩展:React对代码的封装程度较低,也没有过多的使用魔法(vue的defin

2021-04-14 22:55:49 330

原创 vue3学习—CompositionAPI

CompositionAPI一、CompositionAPI1、setup2、生命周期函数1.renderTracked2.renderTriggered3、composition api相比于option api有哪些优势一、CompositionAPI不同于reactivity api,composition api提供的函数很多是与组件深度绑定的,不能脱离组件而存在。1、setup// componentexport default { setup(props, context){

2021-04-11 17:39:24 327

淘宝滑动菜单.html

博主开发基于移动端的商城时,受手机淘宝首页的滑动菜单启发模仿的一个滑动菜单组件。

2021-03-31

vue3异步组件.zip

是博主学习vue3时写的一个基于vue3的demo,包括vue3中新的router应用和异步组件的变化

2021-03-31

bootstrap响应式星巴克网站

以bootstrap完成的响应式星巴克网站源码,本网站也是借鉴成品网站完成,仅供开发人员下载学习,如用作商业用途,本人概不负责。

2020-11-19

NodeJS学习路线Xmind

是我学习nodejs的Xmind路线,从入门到其它的数据库都已齐全。如果对node的学习没有头绪等,可以下载学习。

2020-10-14

canvas雪花飘落特效

该demo为我自己写的canvas雪花飘落特效,有纯canvas写的,也有图片的,里面代码有详细注释,可供参考学习。

2020-09-22

Bootstrap响应式星巴克网页

这是我自己用Bootstrap仿写的一个星巴克网页,可供下载学习借鉴,如用作商业用途,产生纠纷本人概不负责。

2020-09-22

原生JS实现连连看小游戏.zip

里面是自己学习原生JavaScript课程时,敲的连连看小游戏,仅供各位感兴趣的网友下载借阅,学习编程思维和编程逻辑。

2020-05-15

原生js实现打地鼠小游戏.zip

里面是自己学习原生JavaScript课程时,敲的打地鼠小游戏,仅供各位感兴趣的网友下载借阅,学习编程思维和编程逻辑。

2020-05-15

原生JS实现像素鸟.zip

里面是自己学习原生JavaScript课程时,敲的像素鸟小游戏,仅供各位感兴趣的网友下载借阅,学习编程思维和编程逻辑。

2020-05-15

原生js实现贪吃蛇.zip

里面是自己学习原生JavaScript课程时,敲的贪吃蛇小游戏,仅供各位感兴趣的网友下载借阅,学习编程思维和编程逻辑。

2020-05-15

原生JS实现别踩白块小游戏.zip

里面是自己学习原生JavaScript时,敲的别踩小白块小游戏,仅供各位感兴趣的网友下载借阅,学习编程思维和编程逻辑。

2020-05-15

20个经典实用的网页模板.zip

该资源为自己收集整理的二十个很经典的网页模板,下载者可以借鉴这些模板学习,注:如果用作商业用途,与本人无关

2020-05-12

17套后台管理页面模板.zip

该文件里面有自己收集的一些后台管理的页面模板,特别声明:该资源为网络上收集而来,非自己制作,下载者只可借鉴学习,如用作商业等用途与本人无关。

2020-05-12

CSS3、1000+案例.zip

该文件里面有自己收藏的成百上千个CSS3的一些经典案例模型,特别声明:该资源并非自己制作,下载者只可借鉴学习,如用作商业等用途与本人无关。

2020-05-12

H5、1000+案例.zip

该文件里面有自己收藏的成百上千个HTML5的一些经典案例模型,特别声明:该资源并非自己制作,下载者只可借鉴学习,如用作商业等用途与本人无关。

2020-05-12

js+jq、1000+案例.zip

该文件里面有自己收藏的成百上千个JavaScript和jQuery的一些经典案例模型,特别声明:该资源并非自己制作,下载者只可借鉴学习,如用作商业等用途与本人无关。

2020-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除