关于setState的那点事

文章目录一、setState执行初探事件里的setState定时器里的setState二、setState的使用setState的第二个参数(callback)关于多个setState的执行setState第一个参数(函数写法)三、浅谈setState源码总结一、setState执行初探事件里的setState请说出以下代码按钮点击之后输出的值:import React, { Component } from 'react'export default class App extends Co
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

react里的context

文章目录一、什么是上下文(context)?二、旧版本的上下文上下文的创建上下文的使用二、新版本的上下文总结一、什么是上下文(context)?上下文,当一个组件创建了上下文后,其后代组件都可以使用该上下文中的数据。在之前的学习中,我们知道react的数据要么来源于自身的状态,要么来源于父级传过来的props。有了上下文之后,组件多了一个数据来源,那就是context上下文。react16版本前的的上下文和16版本之后的上下文是不一样的。二、旧版本的上下文旧版本的react认为只有类才有状态
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

手写react路由之path-to-regexp

文章目录一、path-to-regexp是什么?1.第一个参数(必填):匹配规则2.第二个参数(可选),包含匹配路径关键字的数组3.第三个参数(可选),配置对象总结一、path-to-regexp是什么?路由的匹配需要对路径进行正则匹配,而path-to-regexp这个库则提供了匹配的方法。1.第一个参数(必填):匹配规则先看看库的使用import {pathToRegexp} from "path-to-regexp"const result = pathToRegexp("api/bl
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

vue3相比vue2效率提升在哪些方面?

vue3相比vue2效率提升在哪些方面?静态提升静态提升相比vue2,vue3对以下静态节点进行提升:元素节点没有绑定的动态内容//vue2的静态节点render(h){ //直接render h('h1',null,'this is h1')}//vue3的静态节点const hoisted = createdVNode('h1',null,'this is h1')render(){ //直接使用被提升的静态节点}通过打开vue3工程,可以看到起运行代码中包含着h
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

vue3相比vue2有哪些变化?

vue3相比vue2有哪些变化?API和数据响应式的变化去除构造函数组件实例中的API响应式的变化生命周期Vue3新增模板中的变化v-model与.sync修饰符v-for和v-ifkeyFragment组件的变化异步组件可自行更改组件结构API和数据响应式的变化去除构造函数在vue2中,当一个页面需要多个vue应用时,在需要插件的场景下,会导致多个应用都挂载了相同的插件,因为插件的注册是在new vue之前,即挂载在vue的原型上。Vue.use(XXX)Vue.mixin(XXX)new
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

vue2风格规范

vue2风格规范前言单组件如何命名单文件组件的文件名的大小写基础组件名单例组件名紧密耦合的组件名组件名中的单词顺序完整单词的组件名组件名为多个单词模板中的组件名大小写JS/JSX中的组件名大小写自闭合组件prop名的大小写多个特性的元素模板中简单的表达式简单的计算属性指令缩写良好的代码顺序组件/实例的选项顺序元素特性的顺序单文件组件顶级元素的顺序前言项目开发,以个人愚见,应从规范入手,遵从社区规范,学习前辈们经验总结的最佳实践,这于个人于团队都是有利的。编程除了有些是靠思维,我认为大多数还是靠记忆的
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

浅谈vue3的Reactivity API和Composition API

文章目录Reactivity API响应式数据reactiverefcomputed判断数据转换数据小结监听数据watchEffectwatch小结Composition APIsetup生命周期小结总结Reactivity API响应式数据vue3的响应式系统是脱离组件的,下面的代码可在js文件中直接执行。reactivereactive可以使数据变成响应式。import {reactive} from 'vue'//本质上,下面的代码等于new Poxy({ count: 0 })co
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

vue2最佳实践

vue2最佳实践为列表渲染设置属性key在v-if/v-if-else/v-else中使用key关于路由切换组件不变的解决方案路由导航守卫beforeRouteUpdate观察$route对象的变化为router-view组件添加属性key为所有的路由统一添加query使用全局守卫beforeEach使用函数劫持区分Vuex与props的使用边界避免v-if和v-for一起使用为组件样式设置作用域避免在scoped中使用元素选择器避免隐性的父子组件通信最佳实践主要来源于《深入浅出vue》一书为列表渲染
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

浅谈迭代器和生成器

本文主要讲解迭代器协议以及js中的迭代器规则,从迭代器出发引出生成器,包括生成器的协程机制,生成器使用规则等,最后阐述async...await语法糖的实现原理。
分类: 企业开发 发布时间: 06-27 08:16 阅读次数: 0

避免重复定义回调函数

在 React 函数组件中,每一次 UI 的变化,都是通过重新执行整个函数来完成的。我们知道,当事件处理函数定义在函数组件内部时,在多次渲染之间,是无法重用事件处理函数的,而是每次都需要创建一个新的回调函数。
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Gradle--快速上手依赖构建Gradle及多模块定制化统一配置实现

【学习背景】相信学习Java的小伙伴,目前项目中用得最多的两种构建依赖构建方式分别是Maven,两一种是Gradle,至于哪种日出冲天,哪种日薄西山,这个说不准,实际两种都使用得挺多的,只不过Maven会出得早一些,而Gradle是后起之秀,今天就来将一下这个后起之秀Gralde一、单模块(官方demo)1.1 生成demo直接通过SpringBoot官方快速创建一个demo工程 https://start.spring.io/将demo工程导入IDEA或Eclipse等集成开发工具,得到的结构
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--JDK自带JVM性能调优工具jconsole远程监控tomcat进程

【学习背景】学习Java的小伙伴,应该都知道JVM,那你听过JVM的性能调优工具之一jconsole吗?啥,不知道??那没关系,带你花几分钟快速了解下,后续有时间可以自己动手去熟悉一下进入正文~java version “1.8.0_221”温馨提示:Oracle JDK从2019年4月16号开始商用商用商用收费,最后一个免费JDK版本是1.8.202官方公告:The Oracle JDK License has changed for releases starting April 16, 20
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--深入JDK和hotspot底层源码剖析Thread的run()、start()方法执行过程

【学习背景】今天主要是来了解Java线程Thread中的run()、start()两个方法的执行有哪些区别,会给出一个简单的测试代码样例,快速理解两者的区别,再从源码层面去追溯start()底层是如何最终调用Thread#run()方法的,个人觉得这样的学习不论对面试,还是实际编程来说都是比较有帮助的。进入正文~学习目录一、代码测试二、源码分析2.1 run()方法2.2 start()方法三、使用总结一、代码测试执行Thread的run()、start()方法的测试代码如下:public
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--几种位运算及常见进制说明(解读HashMap源码必备知识)

您好,我是贾斯汀,今天又来学习啦!【学习背景】学习Java的小伙伴,都知道想要提升个人技术水平,阅读JDK源码少不了,但是说实话还是有些难度的,底层源码实现的原理离不开各种常用的数据结构和算法,很多时候还会用到各种位运算,比如面试必问和工作写烂透了的HashMap,就一个put(key,value)添加元素的底层实现,就用到了各种位运算知识,不对位运算略知一二,你还真读不懂它的源码,所以本文主要对Java中的几种位运算以及常见进制的说明,还会以HashMap底层实现添加元素四部曲展开说明,希望能提高提
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--敲重点!JDK1.8 HashMap特性及底层数组+单链表+红黑树知识(建议收藏)

HashMap的特性继承AbstractMap抽象类,实现Map接口以及Cloneable, java.io.Serializable克隆和序列化HashMap底层数据结构是由数组+链表组成的哈希表存储的元素是键值对,key键是唯一的,并且允许为null通过key的hash值计算出需要存放在哈希表中的数组位置index默认初始化容量大小为0,第一次调用put真正给默认大小16,每次扩容oldCap << 1即原来容量的2倍常用的API方法put(key,value)/get(k
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--深入理解字符串的String#intern()方法奥妙之处

学习背景进入正文学习字符串的intern()方法之前,先给下这4个问题,看下自己是否都知道答案?1、String s1 = “a” + “b”; //创建了几个对象?2、String s2 = new String(“ab”); //创建了几个对象?3、String s3 = new String(“a”) + new String(“b”); //创建了几个对象?4、String s4= new String(“a”) + new String(“a”); s4.intern(); //创建了
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

Java--线程Thread生命周期的几种状态相互转换及常用API方法说明

❤️‍大家好,我是贾斯汀,今天主要聊一聊关于线程的瓜!❤️‍先来看一下线程这张图线程的几种运行状态之间运行流程:看不懂没关系,慢慢来学习,往下学习来继续了解一下~什么是线程?线程是进程的一部分,是程序执行中的一条执行路线;进程就是指程序在其自身地址空间的一次执行活动,是程序独立运行的基本单位;一个进程可以包含多条线程,一个条线程对应一个进程中的一条执行路线。线程的几种创建方式?主要由四种方式创建线程具体每一种创建方式说明及代码实现如下:/** * 创建Thread线
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

LeetCode--Java实现704.二分查找、278.第一个错误的版本、35.搜索插入位置

目录学习背景704.二分查找题目分析解题思路代码实现278.第一个错误的版本题目分析解题思路代码实现35.搜索插入位置题目分析解题思路代码实现学习背景本文主要介绍如何通过Java实现LeetCode官方提供的以下数据结构与算法题目:704.二分查找278.第一个错误的版本35.搜索插入位置704.二分查找题目分析原题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0

MySQL--新手必备SQL基础知识、事务ACID及隔离级别

❤️‍您好,我是贾斯汀,本文主要分享数据库的一些基础知识!❤️‍SQL什么是SQL?【百度百科】结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL有哪几个部分?SQL主要包括DQL、DML、DDL、TCL、DCL、CCL六大部分。DQL(Data Query Language)数据查询语言语法:SELECT说明: 用于查询例子:–普通查询
分类: 企业开发 发布时间: 06-27 08:15 阅读次数: 0