跳至主要內容
前端物语

前端物语

每一个不曾起舞的日子,都是对生命的辜负!

使用 react-query 让状态管理更加高效优雅

使用 react-query 让状态管理更加高效优雅

什么是 react-query

React Query 是一个基于 React 的轻量级数据获取和状态管理库,其主要关注点在于客户端如何更好地管理服务器端状态。与传统的状态管理库(如 Redux 和 MobX)相比,它专注于处理服务器状态,简化了与后端数据交互的逻辑。

React Query 通过提供 useQuery、useMutation 等 hooks,使得开发者能够轻松地获取、更新、删除服务器端数据。此外,它还内置了数据缓存、自动更新、重试等功能,进一步优化了客户端与服务器端状态同步的体验。


h7mlreactreact queryReact状态管理React Query大约 10 分钟
使用 Node.js 连接多种类型数据库

使用 Node.js 连接多种类型数据库

关系对比

数据库 驱动/模块 连接方式 优缺点
MariaDB mariadb 使用 mariadb.createConnection() 创建连接,或者使用 mariadb.createPool() 创建连接池 MariaDB 是 MySQL 的一个分支,与 MySQL 兼容。驱动程序相对较新,但已受到广泛认可和广泛使用。
MongoDB mongodb 使用 mongodb.MongoClient.connect() 创建连接 MongoDB 是一个面向文档的 NoSQL 数据库,具有可伸缩性、灵活性和高速读写等特点。MongoDB Node.js 驱动程序是官方支持的,并且易于使用。
PostgreSQL pg 使用 new pg.Client() 创建连接 PostgreSQL 是一个功能强大的关系型数据库,具有高度的稳定性和可靠性。pg 驱动程序是 Node.js 中最流行的 PostgreSQL 驱动程序之一。
Oracle oracledb 使用 oracledb.getConnection() 创建连接 Oracle 是一个功能强大的关系型数据库,主要用于企业级应用程序。oracledb 驱动程序是官方支持的,并且具有很好的性能和可靠性。
Microsoft SQL Server mssql 使用 new mssql.ConnectionPool() 创建连接池 Microsoft SQL Server 是一个功能强大的关系型数据库,主要用于企业级应用程序。mssql 驱动程序是 Node.js 中最流行的 Microsoft SQL Server 驱动程序之一。
Redis ioredis 使用 new Redis() 创建连接 Redis 是一个内存数据结构存储系统,适用于需要快速读写和高并发的应用程序。ioredis 是一个支持 Redis 集群和复制功能的 Redis 驱动程序。
SQLite better-sqlite3 使用 better-sqlite3() 创建连接 SQLite 是一个非常轻量级的嵌入式数据库,适用于小型项目。better-sqlite3 是官方 SQLite3 驱动程序的代替品,速度更快且易于使用。
Couchbase couchbase 使用 new couchbase.Cluster() 创建连接 Couchbase 是一个面向文档的 NoSQL 数据库,适用于需要快速读写和高并发的应用程序。couchbase 驱动程序是官方支持的,并且具有很好的性能和可靠性。
Cassandra cassandra-driver 使用 new cassandra.Client() 创建连接 Cassandra 是一个分布式的 NoSQL 数据库,适用于大规模数据存储和处理。cassandra-driver 是官方支持的驱动程序,并具有很好的性能和可靠性。
Neo4j neo4j-driver 使用 neo4j.driver() 创建连接 Neo4j 是一个图形数据库,适用于需要处理高度连接数据的应用程序。neo4j-driver 是官方支持的 Node.js 驱动程序,并且易于使用。
ArangoDB arangojs 使用 new arangojs.Database() 创建连接 ArangoDB 是一个多模型数据库(支持文档、图形和键值数据),适用于需要存储多种类型数据的应用程序。ArangoJS 是一个用于 Node.js 的 ArangoDB 驱动程序。
RethinkDB rethinkdbdash 使用 rethinkdbdash() 创建连接 RethinkDB 是一个面向文档的 NoSQL 数据库,具有实时更新和可伸缩性等功能。它可以使用 RethinkDB 驱动程序或 rethinkdbdash。

h7mlNode.jsMySQLMongoDBPostgreSQL数据库连接Node.js大约 13 分钟
深度解析 URL Scheme

深度解析 URL Scheme

当我们使用移动应用时,我们通常会通过点击链接或按钮来跳转到其他页面或应用。在 iOSAndroid 系统中,这些链接或按钮是通过 URL Scheme 实现的。

URL Scheme 是一种在移动设备上通过链接或按钮调用应用程序的机制。它允许开发者在应用程序内部注册特殊的 URL,当用户点击带有该 URL 的链接或按钮时,系统会自动打开相应的应用程序,并执行相应的操作。


h7mljavascriptURL SchemejavascriptURL Scheme大约 11 分钟
前端物语|面试物语-JavaScript

h7mlJavaScriptJavaScript大约 2 分钟
说说你对函数式编程的理解?优缺点?

说说你对函数式编程的理解?优缺点?

一、是什么

函数式编程是一种"编程范式"(programming paradigm),一种编写程序的方法论

主要的编程范式有三种:命令式编程,声明式编程和函数式编程


h7mlinterviewJavaScriptinterviewJavaScript大约 6 分钟
JavaScript 原型,原型链 ? 有什么特点?

JavaScript 原型,原型链 ? 有什么特点?

一、原型

JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象

当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾


h7mlinterviewJavaScriptinterviewJavaScript大约 3 分钟
DOM 常见的操作有哪些?

DOM 常见的操作有哪些?

一、DOM

文档对象模型 (DOM) 是 HTMLXML 文档的编程接口

它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容


h7mlinterviewJavaScriptinterviewJavaScript大约 6 分钟
说说 new 操作符具体干了什么?

说说 new 操作符具体干了什么?

一、是什么

JavaScript中,new操作符用于创建一个给定构造函数的实例对象


h7mlinterviewJavaScriptinterviewJavaScript大约 2 分钟
什么是单点登录?如何实现?

什么是单点登录?如何实现?

一、是什么

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一

SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统


h7mlinterviewJavaScriptinterviewJavaScript大约 7 分钟
谈谈 this 对象的理解

谈谈 this 对象的理解

一、定义

函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别


h7mlinterviewJavaScriptinterviewJavaScript大约 5 分钟
前端物语|面试物语-React

h7mlReactReact大约 2 分钟
在 react 中组件间过渡动画如何实现?

在 react 中组件间过渡动画如何实现?

一、是什么

在日常开发中,页面切换时的转场动画是比较基础的一个场景

当一个组件在显示与消失过程中存在过渡动画,可以很好的增加用户的体验


h7mlinterviewReactinterviewReact大约 4 分钟
什么是防抖和节流?有什么区别?如何实现?

什么是防抖和节流?有什么区别?如何实现?

一、是什么

本质上是优化高频率执行代码的一种手段

如:浏览器的 resizescrollkeypressmousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能


h7mlinterviewJavaScriptinterviewJavaScript大约 4 分钟
Javascript 如何实现继承?

Javascript 如何实现继承?

一、是什么

继承(inheritance)是面向对象软件技术当中的一个概念。

如果一个类别 B“继承自”另一个类别 A,就把这个 B 称为“A 的子类”,而把 A 称为“B 的父类别”也可以称“A 是 B 的超类”


h7mlinterviewJavaScriptinterviewJavaScript大约 6 分钟
举例说明你对尾递归的理解,有哪些应用场景

举例说明你对尾递归的理解,有哪些应用场景

一、递归

递归(英语:Recursion)

在数学与计算机科学中,是指在函数的定义中使用函数自身的方法

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数


h7mlinterviewJavaScriptinterviewJavaScript大约 4 分钟
typeof 与 instanceof 区别

typeof 与 instanceof 区别

一、typeof

typeof 操作符返回一个字符串,表示未经计算的操作数的类型

使用方法如下:


h7mlinterviewJavaScriptinterviewJavaScript大约 4 分钟
2
3
4
5
...
23