Log in
Discover
Follow
Create
9
Posts
22
Members
Post
Join
大家快乐摸鱼
Posts
Files
Columns
Newest
Trending
Creator
从容的星星
07-25 10:24
Ether.js和Web3.js的比较
每个可编程区块链都有一组 SDK 或库,可帮助与特定区块链进行连接和通信。今天的大多数区块链都依赖于以太坊网络,使其与 EVM 兼容。这意味着如果创建了一个 ETH 库,它就可以在任何 EVM 兼容的区块链上使用。但是,可以使用 JSON-RPC 协议进行通信。 在本文中,我们将比较两个流行的 ETH 库。您将了解它们之间的区别、优缺点。这也可以帮助您作为首席技术官 (CTO) / 团队负责人决定在未来的项目中使用什么库。 用于区块链的 JavaScript 自 1995 年 Brendan Eich 发明 JavaScript 以来,它已成为互联网上最常用的编程语言,用于构建当今使用的许多工具。据Statista称,软件开发人员中最常用的语言是 JavaScript。 想象一下,你需要解决一个特定的问题,而你唯一知道的语言是 JavaScript。如果可以使用 JavaScript 来解决这个问题而不是学习一门新的高级语言,岂不是更容易?许多开发人员都遇到了这个障碍,并找到了通过构建可以通过提供商连接到区块链的 SDK/库来使用 JavaScript 构建 dApp 的方法。然而,这降低了在区块链空间中构建的入门级别。您无需学习 Rust 和 Solidity 等高级语言即可为Solana或以太坊链构建。 此外,降低区块链开发的入门级也是JavaScript的主要作用之一。 什么是 Ethers.js 自ethers.js成立以来,它经历了稳定的增长,并成为以太坊开发人员中最常用的基于 JavaScript 的 web3 开发库之一。 该工具可帮助 Javascript 开发人员与以太坊链和任何以太坊虚拟机 (EVM) 兼容的区块链进行交互。 一位名叫 Richard Moore 的加拿大软件工程师在 2015 年创建了 Ethers.js 作为 web3.js 的替代品 Ethers.js 以轻量级着称。它管理密钥和与区块链交互的方式使其与众不同。在 ethers.js 中,两个实体处理上述内容: 用私钥签署交易的钱包。 使用 JSON-RPC URL 连接到区块链的提供者。Ethers.js 检查状态并发送交易。 Ethers.js 的优势 库大小:Ethers.js 压缩后为 88KB,未压缩时为 284KB。 ENS:ENS 就像区块链中的 DNS。无论在
从容的星星
07-24 16:18
使用 Next.js 缓解静态站点的压力
介绍静态站点生成是提高应用程序速度、安全性和整体性能的强大工具。Next.js 是一种流行的静态站点生成框架,它为开发人员提供了一种利用静态站点功能的简单方法。它提供了一组强大的功能,例如自动代码拆分、路由和服务器端呈现,使开发更加轻松快捷。借助 Next.js,开发人员可以快速创建安全、高性能且 SEO 友好的静态网站。在本文中,我们将讨论使用 Next.js 生成静态网站的好处,以及它如何帮助开发人员创建强大而高效的网站。 使用 Next.js 生成静态站点的好处性能和速度与服务器端生成和客户端生成相比,静态站点生成显示出性能改进。这样,内容是在应用程序构建期间生成的。这意味着根据请求,内容已准备就绪,可以立即发送给用户。这是一个巨大的改进,因为在其他两种情况下,都需要先生成它才能显示或发送。如果我们谈论的是客户端,那么会加载库、获取数据并为其生成内容并显示在浏览器中。服务器端根据请求获取数据,触发构建,并将最终包作为响应发送给显示的用户。 安全可靠安全性和可靠性可能是您可能不会考虑的两个因素,但它们确实是。首先从安全性开始,在客户端渲染中,加载所有库和静态资源,然后从 API 请求数据,如果授权失败,则显示相应的错误。问题是它仍然加载静态资源。使用静态站点生成,客户端只会立即收到错误页面。可靠性也一样。您的页面可能是动态的,并且取决于某些不会更改的 API 响应。比如博文。典型的过程又是获取资源和数据、生成内容并在浏览器中显示。但是,有时 API 可能由于许多不同的原因而无法使用。通过静态站点生成, 搜索引擎优化静态站点生成减少了加载时间,减少了加载后对服务器请求的需求,并实现了更好的结构化和设置元数据。这些是搜索引擎在对网页进行排名时考虑的因素。 使用方便这可能是 NextJS 特有的好处。随着时间的推移,我为此尝试了许多不同的单页应用程序解决方案,根据我的经验,NextJS 拥有迄今为止最好的一个。开箱即用,在构建期间,它将生成不会更改的静态内容。你不需要做任何事情。这可能是标题、标题、静态文本、图像或其他任何内容。对于从某些 API 或服务加载的动态内容,您可以在页面组件中使用两个函数。一个是 getStaticProps 用于准备将在生成中使用的数据,如果您的路线是动态的,还有 getStaticPaths 函数。 如何开始在 Next.js 中生
从容的星星
07-23 11:36
Material UI 自定义 (TypeScript)
- 组件定制 我在这个项目中使用了多种自定义 Material UI 组件的方法: 使用内联属性和样式: import { Typography } from "@mui/material"; fontSize={18} fontWeight={600} style={{ textDecoration: "line-through" }} > TEXT 使用提供对主题和断点的访问的sx属性以及一些简写属性,例如and而不是and : p``m``padding``margin import { Typography, SxProps, Theme } from "@mui/material"; const MyStyles: SxProps = (theme: Theme) => ({ mt: 7, fontSize: { xs: theme.typography.h4.fontSize, md: theme.typography.h3.fontSize, }, fontWeight: 600, }); TEXT 通过直接针对孩子的班级在父级上设置样式Mui: (在这个例子中"&>p"也可以工作,这个方法更适合其他组件Switch和类".MuiSwitch-thumb") import { Box, Typography } from "@mui/material"; sx={{ "&>.MuiTypography-root": { fontSize: 18, fontWeight: 600 } }} > Text 在父项上设置样式并inherit在子项中使用 您可以将组件属性设置为具有“继承”的值,在这种情况下,它们会继承其父元素的样式。 import { Box, Typography } from "@mui/material"; sx={{ fontSize: 18, fontWeight: 600 }} > Text 使用styled()实用程序: import { Typography, TypographyProps, styled() } from "@mui/material"; const CustomTypography = styled(Typography)(({ them
从容的星星
07-19 09:46
在服务器端使用 props 释放 Next.js 预渲染
Next.js 是一种流行的 JavaScript 框架,提供服务器端渲染和静态站点生成功能。预渲染是 Next.js 的一项重要功能,它允许开发人员在将页面发送到客户端之前在服务器上渲染页面。它允许更快地将页面发送到客户端,从而使用户体验更快、更流畅。此外,还可以将服务器端的 props 传递给页面,使页面更加个性化和动态化。在本文中,我们将讨论使用 Next.js 进行预渲染的基础知识,以及如何使用服务器端 props 来创建更多动态页面。 什么是预渲染?预渲染是一种在将页面内容发送到客户端之前在服务器上生成页面内容的技术。从 NextJS 端,您准备页面呈现所需的所有值并将它们作为道具传递。只需定义缓存标头即可为内容启用缓存。加载内容后,NextJS 会启动一个称为 hydration 的过程。在此过程中,它附加所有事件和其他侦听器,以便在它之后,应用程序开始作为常规单页应用程序运行。 预渲染的好处这种技术有很多好处,但最主要的是速度。在典型的单页应用程序中,通常的过程是获取所需的静态内容。这意味着需要一组 JavaScript、库、CSS 和模板。之后,它请求获取该页面所需的数据。一旦它都被加载,它就会开始构建内容并在浏览器中呈现它。 使用服务器端道具对于使用服务器端渲染的例子,我们可以从使用一个简单的组件开始,它只显示人的名字和姓氏。 该组件不会使用服务器端呈现,但也没有必要。然而,我们可以有一个显示不同人姓名详细信息的动态页面。然后我们可以使用服务器端渲染来准备这些值并根据请求开始渲染它们。我们可以通过在公开页面组件的同一文件中导出 getServerSideProps 函数来启用它。 在上面的示例中,使用的值作为 props 传递给组件。但是,在 getServerSideProps 中,值是硬编码的。这打破了服务器端渲染的重点。但是这些值可能取决于某些 URL 路径参数,并且可以从某些 API 或数据库中检索这些值。 在这种情况下,我们需要一个路径 ID。函数 getServerSideProps 有一个参数,context,我们在其中获取所有需要的请求数据,包括 id 参数。 在上面的代码中,使用 await 调用了 fetchData 函数。这是可能的,因为 getServerSideProps 函数被标记为异步,因此您可以在其中发
从容的星星
07-18 15:46
文心快码羊毛 类似于cahtGPT的插件化
给你分享一个免费的编码助手——百度Comate!百度文心大模型,46%采纳率,百度27%的代码都是它写的!AI这个大腿,你确定不抱一下?快来安装使用吧,送京东卡! https://comate.baidu.com/?inviteCode=algvdl9s 参加活动可得100积分 然后根据活动要求可以完成后续的任务 300积分可以换30猫超卡
从容的星星
07-18 15:44
多model项目下,某个项目引用了公共lib下的service, 其他模块想不受影响的启动解决办法
- 问题描述: 现在有一个项目,有各个子model组成,其中有一个公用的lib包,放置一些公用的util和service供子模块使用, 但是现在产生了一个问题. A模块,B模块和C模块共同引用了一个service,该service负责发送异步的mq消息.当该service在lib包下时,除了引用的ABC模块,其他的DEFG...都需要在配置文件里面加上mq的配置文件,否则的话对应的DEF等无法启动,如何保证service即在lib下,同时其他非使用的model不需要写配置文件 - 解决办法 @ConditionalOn相关注解: 此注解可以实现相关功能,参考地址:@ConditionalOn 在ABC子model的配置文件内引入相关的配置文件lib下的service使用 @ConditionalOnProperty指定引入的mq配置的前缀,表示当mq配置存在时把该service注入工厂@ConditionalOnBean 指定name,表示当指定的类存在时,本类注入工厂
vV_Leon
07-17 15:52
我爱摸鱼
虽然“摸鱼”一词通常被用来形容在工作或学习期间偷懒、不专注或做与工作/学习无关的事情,但如果我们从一种更轻松和幽默的角度来看,或者说在适度的范围内,摸鱼也可以有一些“优点”,尽管这些优点可能并不被所有环境或情境所鼓励: 缓解压力:长时间的工作或学习会让人感到疲劳和压力积累。偶尔的摸鱼,比如短暂地浏览社交媒体、做些轻松的小游戏或者与同事闲聊,可以帮助人们放松心情,缓解紧张情绪,从而恢复精力,更好地面对接下来的任务。 增加创造力:有时候,当人们从手头的任务中暂时抽离出来,进行一些看似与工作无关的活动时,反而能够激发新的灵感和创意。这是因为大脑的潜意识可能在这些轻松的时刻进行信息整合,从而产生新的想法或解决方案。 提升工作效率:适量的摸鱼时间可以视为一种“充电”过程,帮助人们恢复注意力和动力。当重新投入到工作中时,可能会发现效率有所提升,因为已经得到了足够的休息和放松。 增强社交能力:在工作或学习环境中,摸鱼时与同事或同学的闲聊可以成为增进了解和建立友谊的机会。这些非正式的交流有助于建立更加和谐的人际关系,为未来的合作打下基础。 提高生活满意度:当人们能够在工作和学习之余找到一些乐趣和放松的方式时,整体的生活满意度可能会提升。这是因为他们感到自己不仅仅是一个工作机器或学习机器,而是一个有血有肉、有情感需求的人。 然而,需要强调的是,摸鱼应该是一种适度的、有意识的放松方式,而不是逃避责任或拖延任务的借口。过度的摸鱼会严重影响工作效率和成果,甚至可能损害个人的职业发展和学习成果。因此,在享受摸鱼带来的片刻轻松时,也要保持对工作的责任感和对学习的热情。
从容的星星
07-17 15:16
springboot监听器
最近在项目中引入了一个事务提交后的监听器,现对这些功能做一个阶段性的总结: 就是用来监听程序执行的。监听器可以做什么事?可以监听程序执行,使程序在不同的阶段做不同的事情,并且与程序主业务逻辑解耦.web监听器就是Servlet中特殊的类,他们能帮助开发者监听web中的特定事件,比如ServletContext、HttpSession、ServletRequest的创建和销毁;变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监控等等。 广播器(ApplicationEventMulticaster):用来把发布的事件广播给支持当前事件的监听器。 事件(ApplicationEvent):用来定义事件。 小知识:Spring boot项目启动时会扫描项目中的监听器并加载到广播器中,所以广播器广播的时候能获取到所有的监听器。 Spring boot识别项目中的监听器规则是:@EventListener注解标注的方法,ApplicationListener接口的实现类。发布器(ApplicationEventPublisher)调用广播器(ApplicationEventMulticaster)把事件广播给支持当前事件的监听器(ApplicationListener)。通俗的话描述,就是广播器根据发布的事件,从所有的监听器中筛选出支持当前事件的监听器。 对于网上查询的一些监听器的应用,很多都是根据上下文初始化一些数据,做一些统计等,而针对于监听事务提交后触发事件这一个,springboot提供了一个@TransactionalEventListener 需要我们创建3个类,对应的分别是 事件, 监听器, 发布器, 事件继承ApplicationEvent 声明事件的类型,同时监听器中通过入参的类型确定是哪一种事件监听 监听器采用注解方式实现,@TransactionalEventListener 中间制定了监听器生效的时间,事件的类型,发生异常后如何处理 使用的地方注入 RefreshPublisher
从容的星星
07-17 13:58
大家快乐摸鱼吧
欢迎应该 大家快乐摸鱼吧 让我们在这愉快的玩耍~