自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 React 16源码解读:useMemo钩子

useMemo钩子可以复用计算结果,而不用每次渲染函数组件时都执行计算。二 代码与useCallback类似,都是比较两次渲染时的依赖数组是否相同,来决定是否复用计算结果。// 函数组件虚拟节点// useCallback钩子实例// 本次渲染时的依赖数组inputs!== null?== null) {// 上次渲染时的依赖数组// 使用Object.is判断两个数组的每个成员是否相同// 复用计算结果// 挂载、更新(依赖发生变化),执行计算。

2023-03-23 19:21:20 199

原创 React 16源码解读:useCallback钩子

比较两次渲染时传入useCallback的依赖数组是否相同,来决定是否复用函数。通过useCallback钩子,可以实现多次渲染函数组件时,复用函数。

2023-03-23 19:13:09 170

原创 Vue3源码解读:内置代理

除了用户可以使用reactive、shallowReactive、readonly、shallowReadonly创建代理外,Vue3内部也创建了若干代理。

2023-03-21 19:19:11 282

原创 Vue3源码解读:创建代理

代理、Proxy、reactive、shallowReactive、readonly、shallowReadonly、baseHandlers、collectionHandlers

2023-03-16 19:38:33 101

原创 Vue3源码解读:依赖映射

targetMap、depsMap

2023-03-15 19:50:20 98

原创 Vue3源码解读:副作用收集依赖

则App组件的渲染副作用的深度是1,a计算属性副作用的深度是2,b计算属性副作用的深度是3。例如,MyApp组件的模板访问了a计算属性,a计算属性访问了b计算属性。

2023-03-13 18:53:28 212

原创 React 16源码解读:useState钩子实例的队列

dispatchAction方法:向队列中添加更新记录ReactFiberHooks.js文件 useReducer方法:处理队列,并删除更新记录。

2023-03-09 19:40:28 92

原创 React 16 源码解读:新、老上下文对照

prepareToReadContext方法、getUnmaskedContext方法、getMaskedContext方法。readContext方法。

2023-03-09 14:15:43 245

原创 npm安装错误大全

npm ERR! fatal: unable to connect to github.comOpenSSL SSL_read: Connection was reset, errno 10054unable to access 'https://github.com/nhn/raphael.git/': Failed to connect to github.com port 443: Timed out

2022-08-04 10:56:22 2846 1

原创 Mac安装多个版本Node.js

开发旧项目时,使用低版本Node.js。开发新项目时,需使用高版本Node.js。可使用n同时安装多个版本Node.js,并切换到指定版本Node.js。

2022-08-01 15:26:29 2444

原创 Vue3函数式组件

现在,在Vue3中,所有的函数式组件都是用普通函数创建的。换句话说,不需要定义组件选项。props和context。context参数是一个对象,包含组件的attrs、slots和emitproperty。此外,h现在是全局导入的,而不是在render函数中隐式提供。在3.x中,有状态组件和函数式组件之间的性能差异已经大大减少,并且在大多数用例中是微不足道的。...

2022-07-29 17:23:05 7477

原创 Vue3 Template Explorer

通过Vue3TemplateExplorer网站,可以很方便地查看Vue3模版编译成的render渲染函数。

2022-07-28 17:28:26 1035

原创 Docker搭建Jenkins

一 安装镜像docker pull jenkins/jenkins:latest-jdk8二 创建容器sudo docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/Jenkins:/var/jenkins_home jenkins/jenkins:latest-jdk8三 配置Jenkins1 在浏览器中访问管理页面,并等待Jenkins就绪

2022-05-25 19:09:43 196

原创 ElementUI 2.x 自定义指令:鼠标滚轮

src/directives/mousewheel.js文件声明了鼠标滚轮自定义指令。在模版中通过v-mousewheel=“handleMousewheel”,可以绑定发生鼠标滚轮事件时的回调函数。一 代码// 依赖第三方库import normalizeWheel from 'normalize-wheel';// 是否是Firefox浏览器const isFirefox = typeof navigator !== 'undefined' && navig

2022-05-23 18:12:02 402

原创 Web Component自定义元素

一 概述自定义元素的名称必须包含中划线;必须有起始标签、结束标签,不能写成闭合标签。二 项目结构在HBuilder中创建普通项目。三 代码1 index.html<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>Web Component自定义元素</title> </head> <

2022-05-09 18:45:00 447

原创 Git常用操作

1 查看分支# 查看本地分支git branch# 查看远程分支git branch -a

2022-04-27 16:19:30 416

原创 Spring Boot 2 + Spring Security 5 实现权限认证:基于内存的身份认证

一 配置类在src/main/java目录中,创建SimpleWebSecurityConfig配置类package com.pet.demo.config.web;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotatio.

2021-04-13 21:25:24 233

原创 SpringBoot2 + Spring Security 5 实现简单权限认证

一 创建配置类在src/main/java目录中,创建SimpleWebSecurityConfig配置类package com.pet.demo.config.web;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springfram.

2021-04-13 21:00:20 205

原创 在Intellij IDEA中实现Spring Boot热部署

一 设置Intellij IDEA(Windows系统)1 File -> Settings... -> Build,Execution,Deployment -> Compiler,勾选Build project automatically。2 Ctrl+Shift+Alt+/ 组合键打开Maintenance窗口,选择1. Registry...,勾选compiler.automake.allow.when.app.running选项。二 添加依赖在..

2021-04-12 18:08:01 299 1

原创 SpringBoot项目部署jar包

一 打包二 展开项目根目录中的target文件夹,找到生成的jar包,并复制到部署文件夹中。三 在命令行窗口中,进入部署文件夹,并执行jar包。java -jar ./demo-0.0.1-SNAPSHOT.jar

2021-04-12 17:37:33 176

原创 Servlet获取初始化参数

一 代码package com.demo.servlet;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Ht

2021-04-10 19:26:10 516

原创 使用Eclipse创建Servlet后,访问Servlet报404错误

一 问题二 解决方案查看build/classes文件夹发现,没有生成.class文件。菜单栏->Project->勾选Build Automatically选项。

2021-04-10 19:20:31 829

原创 keytool生成安全证书时报错:keytool 错误: java.io.FileNotFoundException: xxx.keystore (拒绝访问。)

一 问题描述keytool 错误: java.io.FileNotFoundException: https.keystore (拒绝访问。)二 解决方案以管理员身份运行命令提示符。

2021-04-09 11:36:02 5142

原创 Sublime Text 3 打开文件时卡一下

一 问题Sublime Text 3启动时默认解析侧边栏中的所有文件,并对关键字建立索引。这会导致卡一下。二 解决方案1 Preferences -> Settings,修改配置。{ "theme": "Default.sublime-theme", "index_files":false}...

2021-04-09 10:47:41 607

原创 SpringBoot返回各种形式的数据

package com.test.demo.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org..

2021-04-08 21:30:15 845

原创 访问云服务器的Tomcat的管理页面报错:403 Access Denied

一 问题访问Server Status、Manager App时报错。二 解决方案1 修改C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\server.xml文件。添加role元素。<role rolename="manager-gui"/><user username="admin" password="123456" roles="manager-gui" />..

2021-04-08 18:42:52 222

原创 SpringBoot连接Redis报错:ERR AUTH <password> called without any password configured for the default user.

一 问题描述Redis默认没有密码,SpringBoot向Redis中保存数据时报错。二 解决方案打开redis.conf配置文件,找到requirepass foobared这一行,并取消注释,密码就是foobared。

2021-04-07 19:16:30 16286

原创 SpringBoot 配置跨域

一 配置全局跨域规则@Configurationpublic class CORSConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/cors/global/**") .allowedOrigins("*") .

2021-04-06 18:53:45 66

原创 Load Runner 12.02 常见错误

操作系统:Windows 10Load Runner版本:12.02一 启动Virtual User Generator报错1现象:安装Load Runner成功后,双击桌面快捷方式启动Virtual User Generator报错:Critical error (cannot use ExceptionDialog)System.ArgumentNullException:值不能为null。解决方法:在Windows 10任务栏的搜索框中打开Load Runner。

2021-04-02 11:08:55 1584

原创 JWT实现Token验证

一 流程图二 代码package com.demo.util;import com.auth0.jwt.JWT;import com.auth0.jwt.JWTVerifier;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.interfaces.Claim;import com.auth0.jwt.interfaces.DecodedJWT;import java.util.Calend..

2021-03-26 18:29:59 999

原创 Intellij IDEA自动构建项目:修改ftl文件、html文件后无需重新启动服务器

一 项目环境操作系统:Windows,框架:SpringBoot + MyBatis构建工具:Maven模板引擎:FreeMarker二 修改配置1 File -> Settings -> Build,Execution,Deployment ->Compiler,勾选Build project automatically。2 Help -> Find Action -> Registry,勾选compiler.autom...

2021-03-23 10:11:01 2093

原创 Vue开发常见报错

一 不能识别vue命令报错:vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。解决:npm install -g @vue/cli二 不能安装Vue CLI报错:npm ERR! Unexpected end of JSON input while parsing near '...pyjqqJK6\nEpSv9tZTOVh'解决: npm ...

2021-03-15 10:02:48 6065

原创 快速排序

一 快速排序快速排序采用了分治思想和递归思想。二 代码数据结构p274(清华大学出版社,严蔚敏)#include <iostream>using namespace std;// 交换数组的两个成员void quick_sort_swap(int arr[], int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}/** * 快速排序 */void quic..

2021-03-04 18:11:24 155 1

原创 集装箱装载问题:回溯算法

一 回溯法回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。二 问题有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且,装载问题要求确定是否有一个合理的装载方案可将这些集装箱装上这2艘轮船。如果有,找出一种装载方案。首先将第一艘船尽可能装满,再将剩余集装...

2021-03-02 12:31:12 3278 1

原创 0-1背包问题

一 概述背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。二 算法分析1 红色箭头是计算顺序。 从最后一行,依次计算到第一行。 对于每一行,依次从第一列计算到最后一列。2 橙色箭头是回溯顺序。三 C++代码// knapsack...

2021-02-07 19:59:05 192

原创 Eclipse创建Spring MVC项目

环境:MacOS High Sierra、Eclipse IDE for Enterprise Java Developers(4.18.0)、JDK 1.8.0_271、Tomcat 8.5.61。一 在Eclipse中创建Dynamic Web Project1 File -> New ->Dynamic Web Project -> hello-springmvc。2 Target runtime设置为Apache Tomcat v8.5。3 Conte...

2020-12-28 23:43:30 1826

原创 创建第一个Swift项目

一 在XCode中创建新项目在启动界面中选择Create a new Xcode project二 选择新项目的模版选择Single View App三 填写相关选项,并选择存放位置。四 单击故事板,并打开组件库。然后拖动一个文本域到视图中。五 单击文本域,并设置字体、背景颜色。六 在模拟器中运行...

2020-12-28 20:17:46 515

原创 Tell, Don’t Ask原则

一命令,不要去询问。一个对象应该命令其它对象该做什么,而不是去查询其它对象的状态来决定做什么。查询其它对象的状态来决定做什么也被称作‘功能嫉妒(Feature Envy)’。二if (person.getAddress().getCountry() == “Australia”) {}这违反了得墨忒耳定律,因为这个调用者跟Person过于亲密。它知道Person里有一个Address,而Address里还有一个country。它实际上应该写...

2020-10-02 17:02:56 633

原创 Class类

一 基本用法class Fruit { // 静态属性 static aaa = 'aaa'; // 静态方法 static bbb(){ return 'bbb'; } // 构造函数 constructor(){ console.log(new.target === Fruit); } // 实例属性 ccc = 'ccc'; // 实例方法 ddd(){ return 'ddd'; }}const fruit = new Fruit();...

2020-09-28 17:35:07 82

原创 async function 异步函数

ES2017标准引入了async 函数,其实就是Generator函数的语法糖。asyn函数的实现原理,就是将Generator函数和自动执行器包装在一个函数里。一 基本用法/** * 延迟输出字符串。 * * @param {number} num - 延迟时间(毫秒)。 * @param {string} str - 字符串。 */function delay(num, str) { return new Promise((resolve, reject...

2020-09-25 18:28:48 680

空空如也

空空如也

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

TA关注的人

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