2024三掌柜赠书活动第四期: Next.js实战,构建现代化的可扩展Web应用

news2024/7/2 3:53:43

目录

  • 摘要
  • 前言
  • Next.js简介
  • 关于《 Next.js实战》
  • 实战示例
  • 最佳实践和进阶应用
  • 编辑推荐
  • 内容简介
  • 作者简介
  • 图书目录
  • 书中前言/序言
  • 《Next.js实战》全书速览
  • 结束语

摘要:本文将介绍Next.js,一个流行的React框架,以及如何在实际项目中使用Next.js构建现代化的可扩展Web应用,以及探讨Next.js的核心概念和功能,并提供实用的示例和最佳实践,帮助读者快速上手和应用Next.js。

前言

随着Web应用的不断演进和用户对更快、更高级功能的需求,现代化的前端框架变得越来越重要。Next.js是一个基于React的框架,通过提供服务器端渲染(SSR)和静态网站生成(SSG)等功能,使得构建可扩展的Web应用变得更加便捷。本文将介绍Next.js,一个流行的React框架,以及如何在实际项目中使用Next.js构建现代化的可扩展Web应用,以及探讨Next.js的核心概念和功能,并提供实用的示例和最佳实践,帮助读者快速上手和应用Next.js。

Next.js简介

Next.js是一个基于React的全栈框架,它结合了服务器端渲染(SSR)、静态网站生成(SSG)、路由和构建工具等功能,为开发人员提供了一个完整的Web应用解决方案。Next.js具有以下特点:

  • 服务器端渲染(SSR)和静态网站生成(SSG):Next.js支持在服务器端渲染React组件,从而提供更快的首次加载速度和更好的SEO,而且通过静态网站生成,可以预先生成静态HTML文件,提供更快的页面加载速度和更好的缓存机制。
  • 自动代码拆分:Next.js通过自动代码拆分功能,将页面和组件按需加载,从而优化加载时间和性能。
  • 热模块替换:Next.js支持热模块替换,使开发人员可以在不刷新整个页面的情况下实时预览和调试代码的变化。
  • 强大的路由系统:Next.js提供了简单而强大的路由系统,支持静态路由和动态路由,使得构建复杂的页面和应用变得更加容易。
  • TypeScript支持:Next.js天然支持TypeScript,可以为项目提供更好的类型检查和开发体验。

关于《 Next.js实战》

接下来给大家推荐一本关于 Next.js学习必备的书籍,这是一本关于 Next.js实战类的干货图书,一经上市就登上了京东“计算机与互联网”图书排行榜前列。另外,关注本文博主点赞+收藏本文,且在本文评论区评论“我要入门 Next.js”,将选取三名幸运读者送出纸质版《 Next.js实战》一本,截止时间:2024.01.26。入手《 Next.js实战》传送门:https://item.jd.com/13625093.html或者 《Next.js实战》([美]米歇尔·里瓦 著 李伟 译)【简介_书评_在线阅读】 - 当当图书,个人觉得这本书非常的不错,尤其是想入门Next.js的开发者来讲,是一本不可多得的好书,值得拥有去学习。

实战示例

接下来,让我们通过一个实际示例来演示Next.js的实战应用。

1、创建新的Next.js项目

首先,我们使用以下命令创建一个新的Next.js项目:

npx create-next-app my-next-app

2、创建页面

在Next.js中,页面是由React组件组成的,我们可以在pages目录下创建新的页面,比如我们创建一个名为index.js的文件,作为应用的首页:

// pages/index.js

function HomePage() {
  return <h1>Welcome to Next.js!</h1>;
}

export default HomePage;
3、启动开发服务器

使用以下命令启动Next.js的开发服务器:

npm run dev

现在,您可以在浏览器中访问http://localhost:3000,看到我们刚刚创建的首页。

4、添加路由和导航

Next.js提供了内置的路由系统,使得导航和页面之间的跳转变得非常简单。我们可以使用Link组件来创建导航链接,比如我们可以在首页中添加一个链接到另一个页面:

// pages/index.js

import Link from 'next/link';

function HomePage() {
  return (
    <div>
      <h1>Welcome to Next.js!</h1>
      <Link href="/about">
        <a>About</a>
      </Link>
    </div>
  );
}

export default HomePage;
`````jsx
// pages/about.js

function AboutPage() {
  return <h1>About Page</h1>;
}

export default AboutPage;

在上述代码中,我们创建了一个名为about.js的文件,作为关于页面。然后在首页中添加了一个指向关于页面的链接。

5、部署应用

使用以下命令将Next.js应用构建为静态文件:

npm run build

然后,可以将构建后的文件部署到任何支持静态文件托管的平台,如Vercel、Netlify等。

最佳实践和进阶应用

除了上面的基本示例外,Next.js还提供了许多高级功能和最佳实践,使得构建现代化、可扩展的Web应用更加容易,以下是一些进阶应用和最佳实践的示例:

  • 数据获取:Next.js提供了getStaticProps和getServerSideProps等方法,用于在页面中获取数据,你可以使用这些方法从外部API、数据库或文件系统中获取数据,并将其传递给页面组件进行渲染。
  • 认证和授权:Next.js可以与认证和授权库(如Passport.js、NextAuth.js)结合使用,实现用户认证和授权功能。
  • API路由:Next.js提供了API路由的功能,你可以使用pages/api目录下的文件创建后端API接口,实现与前端页面的数据交互。
  • 样式和CSS-in-JS:Next.js支持多种样式和CSS-in-JS解决方案,如CSS模块、Styled Components、Tailwind CSS等。
  • 部署和性能优化:Next.js提供了许多性能优化的工具和最佳实践,如代码分割、缓存策略、预渲染等,帮助开发者提升应用的性能和用户体验。

编辑推荐

Next.js是一项令人激动的技术,具有多种用途。如果用户(或其公司)打算创建一个电子商务平台、博客或者一个简单的站点,本书将引领读者学习如何在不影响性能、用户体验和开发人员满意度的情况下实现这些功能。

内容简介

《Next.js实战》详细阐述了与Next.js框架相关的基本解决方案,主要包括Next.js简介、不同的渲染策略、Next.js基础知识和内建组件、在Next.js中组织代码库和获取数据、在Next.js中管理本地和全局状态、CSS和内建样式化方法、使用UI框架、使用自定义服务器、测试Next.js、与SEO协同工作和性能管理、不同的部署平台、管理身份验证机制和用户会话、利用Next.js和GraphCMS构建电子商务网站等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

作者简介

米歇尔·里瓦是一位充满激情和经验丰富的软件架构师和谷歌开发专家,来自意大利米兰。多年来,他在许多不同的编程语言和范式中为大公司和基金会的许多开源项目做出了贡献,包括Haskell、Elixir、Go和TypeScript。他还就广泛的主题撰写了数十篇公共领域的文章,并在国际会议和聚会上发表了许多演讲。在撰写这本书的时候,他在ViacomCBS的架构团队担任高级软件工程师,在他们的流媒体网站和网络的核心构建了一个多租户Node.js应用程序。

图书目录

第1部分  Next.js概述

第1章  Next.js简介 3

  1.1  技术需求 3

  1.2  引入Next.js 4

  1.3  Next.js与其他替代方案之间的比较 5

  1.3.1  Gatsby 5

  1.3.2  Razzle 5

  1.3.3  Nuxt.js 6

  1.3.4  Angular Universal 6

  1.3.5  为何选择Next.js 6

  1.4  从React转至Next.js 7

  1.5  开启Next.js之旅 7

  1.5.1  默认的项目结构 8

  1.5.2  TypeScript集成 9

  1.5.3  自定义Babel和Webpack配置 10

  1.6  本章小结 14

第2章  不同的渲染策略 15

  2.1  技术需求 15

  2.2  服务器端渲染(SSR) 15

  2.3  客户端渲染(CSR) 18

  2.3.1  使用React.useEffect钩子 20

  2.3.2  使用process.browser变量 22

  2.3.3  使用动态组件加载 22

  2.4  静态站点生成 23

  2.5  本章小结 26

第3章  Next.js基础知识和内建组件 27

  3.1  技术需求 27

  3.2  路由系统 27

  3.2.1  在页面内使用路由变量 30

  3.2.2  在组件中使用路由变量 31

  3.2.3  客户端导航 32

  3.2.4  使用router.push方法 34

  3.3  处理静态数据资源 35

  3.3.1  Next.js自动图像优化 36

  3.3.2  在外部服务上运行自动图像优化 41

  3.4  处理元数据 42

  3.5  自定义_app.js和_document.js文件 49

  3.5.1  _app.js页面 50

  3.5.2  _document.js页面 54

  3.6  本章小结 55

第2部分  Next.js实战

第4章  在Next.js中组织代码库和获取数据 59

  4.1  技术需求 59

  4.2  组织文件夹结构 60

  4.2.1  组织组件 61

  4.2.2  组织实用工具 62

  4.2.3  组织静态数据资源 63

  4.2.4  组织样式 64

  4.2.5  lib文件 65

  4.3  数据获取机制 65

  4.3.1  在服务器端上获取数据 66

  4.3.2  在服务器端上使用REST API 66

  4.3.3  在客户端上获取数据 73

  4.3.4  在客户端上使用REST API 74

  4.3.5  使用GraphQL API 81

  4.4  本章小结 90

第5章  在Next.js中管理本地和全局状态 91

  5.1  技术需求 91

  5.2  本地状态管理 92

  5.3  全局状态管理 93

  5.3.1  使用Context API 94

  5.3.2  使用Redux 102

  5.4  本章小结 109

第6章  CSS和内建样式化方法 111

  6.1  技术需求 111

  6.2  考查和使用Styled JSX 112

  6.3  CSS模块 114

  6.4  集成SASS和Next.js 119

  6.5  本章小结 121

第7章  使用UI框架 123

  7.1  技术需求 123

  7.2  UI库简介 123

  7.3  在Next.js中集成Chakra UI 124

  7.3.1  利用Chakra UI和Next.js构建员工目录 129

  7.3.2  Chakra UI小结 140

  7.4  在Next.js中集成TailwindCSS 140

  7.5  集成Headless UI 150

  7.6  本章小结 154

第8章  使用自定义服务器 155

  8.1  技术需求 155

  8.2  关于自定义服务器的使用 155

  8.3  使用一个自定义Express.js服务器 156

  8.4  使用自定义Fastify服务器 160

  8.5  本章小结 162

第9章  测试Next.js 165

  9.1  技术需求 165

  9.2  测试简介 165

  9.3  运行单元和集成测试 166

  9.4  利用Cypress进行端到端测试 173

  9.5  本章小结 178

第10章  与SEO协同工作和性能管理 179

  10.1  技术需求 179

  10.2  SEO和性能简介 179

  10.3  基于性能和SEO的渲染策略 180

  10.3.1  真实站点示例后的推理 182

  10.3.2  渲染图像详细信息页面 182

  10.4  私有路由 184

  10.5  快速回顾 184

  10.6  处理SEO 185

  10.7  处理性能问题 186

  10.8  本章小结 189

第11章  不同的部署平台 191

  11.1  技术需求 191

  11.2  不同部署平台简介 191

  11.3  部署至Vercel平台上 192

  11.4  将一个静态站点部署至CDN上 193

  11.5  选择一个CDN 194

  11.6  将Next.js部署至任意服务器上 195

  11.7  在Docker容器内运行Next.js 197

  11.8  本章小结 198

第3部分  Next.js实例

第12章  管理身份验证机制和用户会话 203

  12.1  技术需求 203

  12.2  用户会话和身份验证简介 203

  12.3  JSON Web令牌 205

  12.4  自定义身份验证机制 208

  12.5  利用Auth0实现身份验证 222

  12.6  本章小结 228

第13章  利用Next.js和GraphCMS构建电子商务网站 229

  13.1  技术需求 229

  13.2  创建电子商务网站 229

  13.3  设置GraphCMS 230

  13.4  创建店面、购物车和商品详细信息页面 234

  13.5  利用Stripe处理支付问题 252

  13.6  本章小结 260

第14章  示例项目 261

  14.1  框架及其可能性 261

  14.2  基于Next.js的真实应用程序 263

  14.2.1  流式网站 263

  14.2.2  博客平台 264

  14.2.3  实时聊天网站 265

  14.3  后续发展 265

  14.4  本章小结 266

·X·

Next.js实战 

·XI·

目    录

书中前言/序言

    Next.js是一个面向现代Web开发的、可扩展的、高性能的React.js框架,提供了大量的特性,如混合渲染、路由预取、自动图像优化和国际化机制。

  Next.js是一项令人激动的技术,具有多种用途。如果用户(或其公司)打算创建一个电子商务平台、博客或者一个简单的站点,本书将引领读者学习如何在不影响性能、用户体验和开发人员满意度的情况下实现这些功能。本书首先讨论Next.js的基础知识,读者将理解框架如何帮助你实现相关目标;通过逐步构建真实的应用程序,读者将认识到Next.js的多样性。另外,读者还将学习如何针对站点选择适当的渲染方法、安全机制,以及如何将其发布至不同的提供商。其间,我们将重点讨论性能和开发人员满意度等问题。

  在阅读完本书后,读者将能够使用任何无头CMS或数据源,并借助于Next.js设计、构建和部署现代架构。

适用读者

  本书适用于那些想要通过现代Web框架(如Next.js)构建可扩展和可维护的全栈应用程序以提升React技能的Web开发人员。本书假设读者具备ES6 、React、Node.js和REST方面的中级知识。

本书内容

  第1章主要介绍框架的基础知识,其间将展示如何构建一个新项目、如何自定义配置,以及如何将TypeScript用作Next.js开发的主编程语言(如果必要)。

  第2章讨论渲染方法、服务器端渲染之间的差异、静态站点生成、增量静态再生等。

  第3章深入考查Next.js路由系统和必要的内建组件,并重点讨论搜索引擎的优化和性能。

  第4章介绍如何组织一个Next.js项目,以及如何在服务器端和客户端上获取数据。

  第5章介绍基于React Context和Redux的状态管理,以及如何处理本地状态(组件级别)和全局状态(应用程序范围)。

  第6章介绍构建于Next.js中的基本样式方法,如Styled JSX和CSS模块。此外,本章还展示如何针对本地开发和产品构建启用SASS预处理器。

  第7章引入一些现代UI框架以结束与样式机制相关的讨论,如TailwindCSS、Chakra UI和Headless UI。

  第8章讨论是否需要针对Next.js应用程序使用一个自定义服务器。除此之外,本章还展示如何将Next.js与较为常见的Node.js框架进行集成,即Express.js和Fastify。

  第9章通过Cypress和react-testing-library考查与单元测试和端到端测试相关的一些实践方案。

  第10章通过一些有用的Next.js应用程序提示和技巧深入考查SEO和性能提升问题。

  第11章展示如何选取正确的平台以托管Next.js应用程序(取决于应用程序的特性和其他方面的内容)。

  第?12?章阐述如何通过选取正确的身份验证提供商来安全地管理用户的身份验证。除 此之外,本章还展示如何将Auth0(一个较为流行的身份管理平台)与Next.js应用程序进行集成。

  第13章利用Next.js、Chakra UI和GraphCMS创建一个真实的Next.js电子商务平台。

  第?14?章给出一些如何继续学习框架和提供商方面的技巧,并通过一些示例项目予以 实现,以进一步巩固Next.js方面的知识。

软件和硬件需求

  为了深入理解本书内容,读者需要亲自编写各章节中所展示的代码。如果该过程中出现任何错误,读者可访问本书的GitHub储存库下载示例代码。

  本书的软件和硬件需求如表1所示。

表1

软件和硬件需求 操作系统需求 Next.js Windows、macOS或Linux Node.js(包括npm和yarn) Windows、macOS或Linux Docker(第11章将使用Docker) Windows、macOS或Linux 下载示例代码文件

  读者可访问本书的GitHub存储库查看本书中的示例代码文件,对应网址为https://github.com/PacktPublishing/Real-World-Next.js。如果代码有更新,GitHub储存库也将随之更新。

  除此之外,读者还可访问https://github.com/PacktPublishing/获取本书的其他代码包和视频内容。

下载彩色图像

  我们还提供了一个PDF文件,其中包含彩色的屏幕截图和本书中所使用的图表,读者可访问https://static.packt-cdn.com/downloads/9781801073493_ColorImages.pdf进行下载。

本书约定

  (1)代码块的设置如下所示。
 

export async function getServerSideProps({ params }) { 

  const { name } = params;

  return {

    props: {

      name

    }

  }

}

function Greet(props) {

  return (

Hello, {props.name}!

  )

}

export default Greet;

  (2)当我们希望引起读者注意代码块的特定部分时,相关行或项目则采用粗体进行显示,如下所示。

    Read post

    Read post

    Read post

  

  (3)任何命令行的输入或输出都采用如下所示的粗体代码形式。

echo "Hello, world!" >> ./public/index.txt

读者反馈和客户支持

  欢迎读者对本书提出建议或意见。

  对此,读者可向customercare@packtpub.com发送邮件,并以书名作为邮件标题。

勘误表

  尽管我们希望做到尽善尽美,但书中欠妥之处在所难免。如果读者发现谬误之处,无论是文字错误抑或代码错误,还望不吝赐教。对此,读者可访问www.packtpub.com/support-errata,选取对应书籍,输入并提交相关问题的详细内容。

版权须知

  一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题非常重视。若读者在互联网上发现本书任意形式的副本,请告知我们网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送电子邮件至copyright@packtpub.com。

  若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。

问题解答

  若读者对本书有任何疑问,均可发送电子邮件至questions@packtpub.com,我们将竭诚为您服务。  

·IV·

Next.js实战

·V·

前    言

《Next.js实战》全书速览

结束语

通过本文介绍了Next.js框架的实战应用,并提供了一个基本示例和一些进阶应用的最佳实践。通过使用Next.js,你可以快速构建现代化、可扩展的Web应用,并享受到其提供的服务器端渲染、静态网站生成、路由和构建工具等强大功能。无论你是初学者还是有经验的开发人员,Next.js都是一个值得学习和探索的框架,祝你在Next.js的实战中取得成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1405153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue中封装使用svg图片

vue中封装使用svg图片 svg的优点 &#xff1a; 可以无损放大或缩小&#xff0c;支持多种滤镜和效果&#xff0c;易于修改和编辑 封装组件更加方便使用 1、封装SvgIcon组件 <template><svg :class"svgClass" aria-hidden"true"><use :xli…

Pytorch自动求导机制

PyTorch框架可以帮我们计算好反向传播&#xff0c;需要求导的&#xff0c;可以手动定义 示例&#xff1a; #先构造一个随机的三行四列矩阵&#xff0c;两种方法都可以#方法1 x torch.randn(3,4,requires_gradTrue) x#方法2 x torch.randn(3,4) x.requires_gradTrue x #再构…

路由器配置虚拟服务器

文章目录 路由器配置虚拟服务器1.前言2.配置流程2.1 进入路由器的登录页面2.2 找到端口映射功能2.3 添加虚拟服务器2.4 查找路由器的动态IP2.5 SSH连接 路由器配置虚拟服务器 1.前言 局域网下面连接着路由器&#xff0c;路由器下面连接着服务器&#xff0c;我们自己的电脑想要…

专业Python集成开发 -- Wing Pro 9

Wing Pro 9是一款功能强大的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为专业开发人员设计。它提供了丰富的功能和工具&#xff0c;旨在提高Python开发人员的生产力。 Wing Pro 9的核心特点包括高级代码编辑器、调试器、重构工具、版本控制等。高级代码编辑…

buffer pool和查询缓存的区别

在学习buffer pool的时候我产生了疑问&#xff0c;buffer pool和查询缓存是一个东西吗&#xff1f; 结论&#xff1a;不是一回事。 buffer pool buffer pool我之前介绍过&#xff0c;它的出现是为了提高查找效率&#xff0c;缓存磁盘上的数据页。 buffer pool虽说是内存中的一…

速锐得解码匹配吉利枫叶80V/60S远程控制汽车应用B端市场

吉利枫叶80V/60S这两款车平时是不多见的&#xff0c;因为吉利枫叶的定位就的B端市场&#xff0c;包括了公务用车、共享出行、网约车、大客户定制&#xff0c;所以&#xff0c;好风凭借力&#xff0c;送我上青云&#xff0c;吉利在默默地发着一笔小财&#xff0c;或者说拓宽了更…

java遍历(for和forEach)

1.dade文件 package model;public class dade {private int id;private String name;public dade() {}public dade(int id, String name) {this.id id;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {r…

宝塔FTP文件传输服务结合cpolar内网穿透实现远程连接本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固…

成都首个大型直播基地天府锋巢直播产业基地,诚邀考察

天府锋巢直播产业基地是由德商产投与无锋科技联袂打造的以直播产业为核心的产业园区。天府锋巢直播产业基地是一个包含电商直播、娱乐直播、跨境直播等多种直播业态的全域直播基地。该基地将通过围绕直播产业上下游链的搭建&#xff0c;以整合资源的方式实现产业生态圈的形成&a…

【好用的AI工具Kimi Chat】帮助提高面试效率

一、背景 年前裁员潮&#xff0c;不少人离职找工作&#xff0c;以及年后金三银四&#xff0c;也是求职高峰期。如何更高效的复习技术知识&#xff0c;以及特别是横纵向比对有总结性的问题。本文以面试【测试开发】的岗位为例&#xff0c;对面试题进行拓展&#xff0c;让AI帮助…

InnoDB的Buffer Pool

前置概念&#xff1a;一个数据页16KB&#xff0c;一个数据页可能有多个记录&#xff0c;即使我们只需要访问一条记录&#xff0c;需要把整个数据页加载到内存中&#xff0c;加载到内存后不是直接释放&#xff0c;而是缓存到内存当中&#xff08;当然对于buffer pool的缓存是在存…

layui 自定义日期选择器今日、昨日 、本周、本月、上个月等

1、layui 日期选择器 laydate日期选择器 <div class"layui-input-inline"><input class"layui-input" id"dateTime" placeholder"日期范围"> </div><script> layui.use([laydate], function () {laydate.ren…

为什么MOS管很容易失效?有哪些失效?

在电子元件中&#xff0c;金属-氧化物半导体场效应晶体管&#xff08;MOS管&#xff09;是独特且重要&#xff0c;然而相比其他元件&#xff0c;MOS管很容易失效&#xff0c;导致电路无法正常运行&#xff0c;因此工程师必须查找原因并解决问题。 1、MOS管为什么很容易失效&…

windows vscode jsoncpp cmake c++ 构建项目

jsoncpp的编译和使用推荐文章&#xff1a;jsoncpp的编译和使用 | 爱编程的大丙 (subingwen.cn)https://www.subingwen.cn/cpp/jsoncpp/从这个链接下载jsoncpp-master&#xff1a;https://github.com/open-source-parsers/jsoncpp 可以把这个文件夹名字改成jsoncpp&#xff0c;…

c++:string相关的oj题(415. 字符串相加、125. 验证回文串、541. 反转字符串 II、557. 反转字符串中的单词 III)

文章目录 1. 415. 字符串相加题目详情代码1思路1代码2思路2 2. 125. 验证回文串题目详情代码1&#xff08;按照要求修改后放到新string里&#xff09;思路1代码2(利用双指针/索引)思路2 3. 541. 反转字符串 II题目详情代码1思路1 4. 557. 反转字符串中的单词 III题目详情代码1&…

[设计模式Java实现附plantuml源码~创建型] 集中式工厂的实现~简单工厂模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

【JAVA】我和我的第一个“对象”相遇

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-zAjv1fTLGQmnqncy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

vue2面试题:什么是双向数据绑定

vue2面试题&#xff1a;什么是双向数据绑定 回答思路&#xff1a;1.什么是双向绑定-->2.双向数据绑定的原理-->3.如何实现双向数据绑定1.什么是双向绑定2.双向数据绑定的原理3.如何实现双向数据绑定来一个构造函数&#xff1a;执行初始化&#xff0c;对data执行响应化处理…

基于Python实现人脸识别相似度对比

目录 引言背景介绍目的和意义 人脸识别的原理人脸图像获取人脸检测与定位人脸特征提取相似度计算 基于Python的人脸相似度对比实现数据集准备人脸图像预处理特征提取相似度计算 引言 背景介绍 人脸识别技术是一种通过计算机对人脸图像进行分析和处理&#xff0c;从而实现自动识…

性能优化(CPU优化技术)-NEON 介绍

「发表于知乎专栏《移动端算法优化》」 本节主要介绍基本 SIMD 及其他的指令流与数据流的处理方式&#xff0c;NEON 的基本原理、指令以及与其他平台及硬件的对比。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;…