【实战】学习 Electron:构建跨平台桌面应用

文章目录

  • 一、Electron 简介
  • 二、Electron 的优势
    • 1. 学习曲线平缓
    • 2. 丰富的生态系统
    • 3. 跨平台支持
    • 4. 开源和社区支持
  • 三、Electron 的使用
    • 1. 安装 Node.js
    • 2. 安装 Electron
    • 3. 创建项目
    • 4. 初始化项目
    • 5. 安装依赖
    • 6. 创建主进程文件
    • 7. 创建渲染进程文件
    • 8. 打包应用程序
    • 9. 运行应用程序
    • 10. 调试应用程序
    • 11. 发布应用程序
    • 12. 拓展学习
      • 优化应用程序性能
      • 保护应用程序安全性
      • 测试和部署应用程序
      • 应用程序国际化
      • 使用插件扩展应用程序
      • 进行性能分析和优化
      • 与系统交互
      • 保护源代码安全
      • 使用 HTML5 API
      • 应用程序的打包和部署
      • 使用 TypeScript
      • 使用 React、Vue 或 Angular
      • 实现自动化测试
      • 集成 CI/CD 流程
      • 使用容器化技术
      • 进行性能优化
      • 监控和错误追踪
      • 自定义启动和关闭
      • 使用桌面通知
  • Electron项目开发实战
    • 内容简介
    • 作者简介
    • 目录


Electron 是一个流行的开源框架,允许开发者使用 JavaScript、HTML 和 CSS 等 Web 技术来构建跨平台的桌面应用程序。本文将介绍 Electron 的基本概念、优势、使用方法和实际应用案例,帮助初学者快速入门并理解如何利用 Electron 构建桌面应用程序。

一、Electron 简介

Electron 最早由 GitHub 开发,它允许开发者使用 Web 技术来构建桌面应用程序。Electron 基于 Node.js 和 Chromium,这两个都是开源项目,因此 Electron 有着丰富的生态系统和文档支持。

使用 Electron,开发者可以创建使用 HTML、CSS 和 JavaScript 构建的跨平台桌面应用程序,这些应用程序可以在 Windows、macOS 和 Linux 上运行。此外,由于 Electron 是基于 Web 技术构建的,因此开发者可以非常轻松地创建丰富的图形用户界面(GUI)。

二、Electron 的优势

1. 学习曲线平缓

由于 Electron 是基于 Web 技术构建的,因此熟悉 Web 开发的开发者可以很容易地开始使用 Electron。可以使用 HTML、CSS 和 JavaScript 来创建桌面应用程序,这些技术都是大多数 Web 开发者已经熟悉的。

2. 丰富的生态系统

Electron 有着非常丰富的生态系统,包括许多优秀的开源组件和框架,如 Electron-builder、Electron-redux 和 React-electron 等。这些组件和框架可以帮助开发者更高效地创建桌面应用程序。

3. 跨平台支持

Electron 支持 Windows、macOS 和 Linux,因此使用 Electron 可以轻松创建跨平台的桌面应用程序。这减少了开发者需要维护多个代码基础的风险,降低了开发和维护成本。

4. 开源和社区支持

Electron 是开源项目,有着庞大的社区支持。这意味着开发者可以从社区获得许多支持和资源,包括文档、示例代码、插件和模块等。此外,由于 Electron 的活跃社区,许多新功能和改进都可以及时加入到 Electron 中,为开发者提供更多选择和灵活性。

三、Electron 的使用

使用 Electron 构建桌面应用程序可以分为以下几个步骤:

1. 安装 Node.js

在开始使用 Electron 之前,需要先安装 Node.js。可以在 Node.js 官方网站上下载安装包,选择适合自己操作系统的版本进行安装。

2. 安装 Electron

可以使用 npm(Node.js 的包管理器)来安装 Electron。在命令行中输入以下命令:

npm install -g electron

这个命令将会全局安装 Electron,使得你可以在任何地方使用它。

3. 创建项目

使用 Electron 创建一个新的项目非常简单。可以使用以下命令在命令行中创建一个新的目录,然后进入该目录:

mkdir my-electron-app && cd my-electron-app

4. 初始化项目

可以使用以下命令初始化一个新的 Node.js 项目:

npm init

然后根据提示输入相关信息来初始化项目。

5. 安装依赖

为了使用 Electron,需要安装一些必要的依赖。可以使用以下命令安装 Electron:

npm install --save-dev electron

这个命令将会把 Electron 作为开发依赖添加到项目中。同时还需要安装一些其他的依赖,比如 electron-packager(用于打包应用程序)和 electron-builder(用于构建应用程序):

npm install --save-dev electron-packager electron-builder

6. 创建主进程文件

在 Electron 中,有两个进程:主进程和渲染进程。主进程是 Node.js 进程,渲染进程是 Chromium(Electron 的 Webview 组件)。每个进程都有自己的职责和特性。在 Electron 中,主进程文件通常是 main.js 或者 main.ts。这个文件会启动一个新的主进程,并且这个主进程会加载一个 HTML 文件作为应用程序的初次视图。可以在该文件中监听 Node.js 的事件和进行 DOM 操作等。在项目中创建一个 main.js 文件:

const { app, BrowserWindow } = require('electron')
const path = require('path')
const url = require('url')function createWindow () {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true,}})win.loadFile(path.join(__dirname, 'index.html')) // load the home page
}app.whenReady().then(createWindow)

7. 创建渲染进程文件

渲染进程文件是 Web 页面文件,通常使用 HTML、CSS 和 JavaScript 来编写。在 Electron 中,这个文件通常命名为 index.html。创建一个 index.html 文件,并编写一些基本的 HTML 和 CSS 以及 JavaScript 代码。以下是一个简单的示例:

<!DOCTYPE html>
<html>
<head><title>Hello World!</title><style>body {font-family: Arial, sans-serif;}h1 {color: #333;}</style>
</head>
<body><h1>Hello World!</h1><!-- You can use npm dependencies here --><!-- <script src="path/to/your/dependency"></script> --><script>console.log('Hello World from Electron!');</script>
</body>
</html>

8. 打包应用程序

一旦创建了 Electron 应用程序的核心文件,就需要将其打包为可执行文件。可以使用 electron-packagerelectron-builder 来完成这个任务。这些工具会将 Electron 二进制文件、源代码、依赖项和 Node.js 打包在一起,生成可在目标操作系统上运行的可执行文件。例如,要使用 electron-packager 打包应用程序,可以在项目根目录下运行以下命令:

npx electron-packager . --all

这个命令会在当前目录下创建一个打包好的应用程序。

9. 运行应用程序

在打包之前,可以在开发过程中使用以下命令启动 Electron 应用程序:

npx electron .

这个命令将启动 Electron 应用程序,并且在开发模式下允许你使用浏览器开发者工具进行调试。

10. 调试应用程序

Electron 支持使用 Chrome DevTools 进行调试。可以在 Electron 应用程序中启用这个功能,然后使用 Chrome DevTools 进行调试。在主进程文件(例如 main.js)中添加以下代码:

const { app, BrowserWindow } = require('electron')
const path = require('path')
const url = require('url')function createWindow () {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true,devTools: true // Enable DevTools}})win.loadFile(path.join(__dirname, 'index.html')) // load the home page
}app.whenReady().then(createWindow)

然后重新运行 Electron 应用程序,你将看到一个开发者工具窗口,可以使用它来进行调试。

11. 发布应用程序

完成开发和测试后,可以将 Electron 应用程序发布到各个平台(Windows、macOS 和 Linux)。根据目标平台的要求,可以使用相应的发布工具和流程。例如,对于 Windows,可以使用 Inno Setup 或 NSIS 等工具来创建安装程序;对于 macOS,可以使用 Mac App Store 或 Sparkle 等工具来发布应用程序;对于 Linux,可以使用各个发行版的软件包管理系统来发布应用程序。这些发布流程和工具的使用方法可以参考官方文档或相关教程。

12. 拓展学习

优化应用程序性能

在 Electron 中,由于应用程序是基于 Web 技术构建的,因此 Web 技术可以优化的方面都可以在 Electron 中进行优化。例如,可以通过优化渲染性能、使用 Service Worker 进行缓存、压缩和合并静态资源等方式来提高 Electron 应用程序的性能。同时,也可以使用 Electron 提供的 API 来优化主进程和渲染进程的性能,例如使用 ipc 模块进行主进程和渲染进程之间的通信优化。

保护应用程序安全性

Electron 作为一个跨平台桌面应用程序框架,有一些安全方面的注意事项需要遵守。例如,应该避免在渲染进程中使用 Node.js 核心模块,以防止出现安全漏洞。此外,应该对从用户那里接收到的数据进行合法性验证,并避免在应用程序中使用明文密码等敏感信息。在打包应用程序时,应该使用一些工具来检测应用程序中可能存在的漏洞和恶意代码。

测试和部署应用程序

在发布 Electron 应用程序之前,应该进行充分的测试和部署。可以使用自动化测试工具来测试应用程序的功能和性能,同时可以使用持续集成和持续部署(CI/CD)工具来自动化测试和部署流程。在部署应用程序时,应该选择一个可靠的发布渠道,例如 npm、GitHub 和 Electron Store 等,这些渠道提供了完善的版本控制和发布流程。

应用程序国际化

如果你打算将应用程序推向全球市场,那么应用程序的国际化是必不可少的。Electron 提供了多种国际化(i18n)和本地化(l10n)的支持,包括对资源文件的支持,可以将字符串、日期、数字等格式根据用户的偏好设置进行转换。你可以使用 npm 包,如 i18n-jsi18n-messages 来帮助你在 Electron 应用程序中实现国际化。

使用插件扩展应用程序

Electron 允许使用插件来扩展应用程序的功能,这些插件可以从 Node.js 或者其他 Electron 应用程序中获取。你可以使用 npm 或者其他的包管理器来管理这些插件。此外,你也可以编写自己的插件,以实现特定的功能或者优化。

进行性能分析和优化

使用各种性能分析工具,比如 Chrome DevTools 的 Performance Tab,或者 Node.js 的 perf_hooks 模块,可以对 Electron 应用程序进行性能分析,找出性能瓶颈并进行优化。

与系统交互

Electron 应用程序可以与操作系统进行交互,例如打开新的浏览器窗口、接收操作系统的事件等。你可以使用 Electron 提供的模块如 shellosscreenclipboard 等来实现这些功能。

保护源代码安全

由于 Electron 是基于 JavaScript 和 HTML 等开源技术构建的,因此其源代码是可见的。为了保护源代码的安全,你可以使用混淆工具来隐藏源代码,例如 JavaScript 的压缩工具 uglify-js,或者使用 WebAssembly 等技术来编译代码。

使用 HTML5 API

Electron 应用程序可以访问许多 HTML5 API,例如 WebGL、WebRTC、WebAssembly 等。你可以使用这些 API 来增强 Electron 应用程序的功能,并为用户提供更丰富的体验。

应用程序的打包和部署

Electron 应用程序可以使用不同的工具进行打包和部署,例如 Electron-builder、electron-packager、nsis 等。你可以根据你的需求选择合适的工具,并确保在打包和部署过程中遵循最佳实践,以确保应用程序的性能和安全性。

使用 TypeScript

虽然 Electron 是基于 JavaScript 构建的,但你也可以使用 TypeScript 来编写应用程序。TypeScript 是 JavaScript 的超集,可以提供类型检查和其他功能,这可以帮助你更好地组织代码和维护应用程序的可读性和可维护性。

使用 React、Vue 或 Angular

如果你熟悉这些前端框架,那么你可以使用它们来开发 Electron 应用程序。这些框架可以帮助你更好地组织代码,并提供了丰富的组件和 API,可以让你更轻松地实现复杂的界面和交互。

实现自动化测试

为了确保应用程序的质量和稳定性,你应该考虑实现自动化测试。你可以使用工具如 Selenium、Puppeteer 或 Jest 等来进行自动化测试,以测试应用程序的不同方面,包括 UI、API、数据库等。

集成 CI/CD 流程

通过集成 CI/CD(持续集成/持续部署)流程,你可以将代码更新、构建、测试、发布等步骤自动化,从而提高开发效率并减少错误。你可以使用工具如 Jenkins、Travis CI、CircleCI 等来实现这个目标。

使用容器化技术

使用 Docker 等容器化技术,你可以将应用程序及其依赖项打包成一个可移植的容器,并在不同的环境中快速部署和运行。

进行性能优化

针对 Electron 应用程序的性能优化是必不可少的。你可以通过优化代码、使用 Web Workers、缓存等技术来提高应用程序的性能。同时,你也可以使用工具如 Lighthouse 来评估并优化应用程序的性能。

监控和错误追踪

为了及时发现并解决问题,你可以使用监控和错误追踪工具,如 Sentry、Bugsnag 或 New Relic 等。这些工具可以帮助你收集、分析应用程序的错误信息,并提供实时监控和警报功能。

自定义启动和关闭

默认情况下,Electron 应用程序在启动时会打开一个窗口,而在关闭时则会关闭所有的窗口。如果你需要自定义启动和关闭行为,你可以在主进程和渲染进程中使用事件处理函数来监听 app 对象的 readyclose 事件,并根据需要进行自定义。

使用桌面通知

Electron 允许你在用户桌面显示通知,这对于提醒用户更新应用程序或向用户显示新消息非常有用。你可以使用 Electron 的 dialog 模块中的 showNotification 方法来实现这个功能。

通过以上这些方法,你可以继续扩展 Electron 应用程序的功能、性能和安全性。同时,不断学习和实践也将帮助你成为一名更优秀的 Electron 开发者。

Electron项目开发实战

在这里插入图片描述

内容简介

《Electron项目开发实战》详细阐述了与Electron项目开发相关的基本解决方案,主要包括构建Markdown编辑器,与Angular、React和Vue集成,构建屏幕截图剪裁工具,制作2D游戏,构建音乐播放器,分析、Bug跟踪和许可机制,利用Firebase构建群聊应用程序,构建eBook编辑器和生成器,构建桌面数字钱包等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册

作者简介

潘潇,公司高级技术经理,主要负责前端方向,同时负责跨技术栈的技术管理工作。从事前端方向8年,在前端业务研发和管理上有一定的经验。同时对其他技术方向如客户端开发等,也有不少涉猎。其中使用Electron进行夸端开发有3年,对Electron的基础知识、特性、优化及进阶使用有一定心得。

目录

1章 构建第1个Electron应用程序 11.1 技术需求 11.2 Electron是什么 11.3 准备开发环境 21.3.1 安装Visual Studio Code 21.3.2 针对macOS设置环境 31.3.3 针对Ubuntu Linux设置环境 51.3.4 针对Windows设置环境 61.3.5 在Windows上安装Node.js 71.4 创建一个简单的应用程序 81.5 多平台的打包机制 131.5.1 macOS包机制 131.5.2 Ubuntu包机制 161.5.3 Windows的包机制 181.6 本章小结 202章 构建Markdown编辑器 212.1 技术需求 212.2 配置新的项目 222.3 适配屏幕尺寸 262.4 集成应用程序菜单 282.4.1 创建一个自定义菜单项 292.4.2 定义菜单项角色 322.4.3 菜单分隔符 332.4.4 键盘加速键 352.4.5 特定平台的菜单 362.4.6 配置菜单中的应用程序名称 382.4.7 隐藏菜单项 392.4.8 进程间的消息发送 412.4.9 将文件保存至本地系统 462.4.10 从本地系统中加载文件 532.4.11 创建一个文件菜单 572.5 添加拖曳功能 592.6 支持自动更新功能 622.7 修改应用程序的标题 712.8 本章小结 723章 与Angular、React和Vue集成 733.1 技术需求 733.2 利用Angular构建Electron应用程序 733.2.1 生成Angular项目 743.2.2 将Angular项目与Electron集成 763.2.3 配置实时重载 813.2.4 设置生产版本 833.2.5 设置条件加载 853.2.6 使用Angular Material组件 873.2.7 Anguar路由机制 913.3 利用React构建Electron应用程序 983.3.1 创建React项目 983.3.2 实时重载 1023.3.3 设置产品发布版本 1053.3.4 设置条件加载 1073.3.5 使用Blueprint UI工具箱 1083.4 利用Vue.js构建Electron应用程序 1133.4.1 创建一个Vue配置文件 1173.4.2 实时重载 1193.4.3 产品发布版本 1213.4.4 设置条件加载 1223.4.5 添加路由机制 1233.4.6 配置Vue Material 1253.5 本章小结 1294章 构建屏幕截图剪裁工具 1314.1 技术需求 1314.2 准备项目 1324.3 配置无框窗口 1334.3.1 macOS的附加选项 1354.3.2 使用隐藏的titleBarStyle 1354.3.3 titleBarStyle属性的hiddenInset值 1364.3.4 titleBarStyle的customButtonsOnHover值 1374.4 透明窗口 1384.5 可拖曳的应用程序窗口 1414.6 添加截图工具栏按钮 1424.7 使用desktopCapturer API 1444.8 计算主显示尺寸 1454.9 生成并保存缩略图 1464.10 重置图像尺寸并剪裁图像 1484.11 测试应用程序的行为 1514.12 集成系统托盘 1524.13 启动时隐藏主应用程序菜单 1544.14 注册全局键盘快捷方式 1554.15 本章小结 1575章 制作2D游戏 1595.1 技术需求 1595.2 配置游戏项目 1605.3 运行Hello World示例 1635.4 渲染背景图像 1665.5 禁止窗口尺寸变化 1685.6 渲染精灵对象 1685.7 缩放精灵对象 1695.8 处理键盘输入 1715.9 根据方向翻转飞船对象 1735.10 控制精灵对象的坐标 1745.11 控制精灵对象的速度 1775.12 本章小结 1796章 构建音乐播放器 1816.1 技术需求 1816.2 创建项目 1826.3 音乐播放器组件 1846.3.1 下载音乐文件 1856.3.2 基本的播放器设置 1886.3.3 样式按钮 1926.4 播放控制按钮 1956.4.1 Stop按钮 1956.4.2 静音和非静音按钮 1976.4.3 音量按钮 1996.5 实现歌曲的进度栏 2026.6 显示音乐元数据 2036.7 改进用户界面 2086.8 最终的结构 2106.9 本章小结 2137章 分析、Bug跟踪和许可机制 2157.1 技术需求 2157.2 连接分析和跟踪机制 2167.3 构建自身方案或使用已有服务 2167.3.1 创建自己的分析服务 2177.3.2 使用第三方分析服务 2177.4 针对Electron应用程序使用Nucleus 2187.5 创建一个新的Nucleus账户 2197.6 创建基于跟踪支持的新项目 2227.7 安装Nucleus Electron库 2247.8 查看实时分析数据 2267.9 禁用每个用户请求的跟踪机制 2307.10 验证实时用户统计结果 2317.11 支持离线模式 2327.12 处理应用程序更新 2327.13 加载全局服务器设置 2357.14 许可检查机制和政策 2377.14.1 创建新策略和许可 2377.14.2 检查应用程序中的证书 2407.15 本章小结 2418章 利用Firebase构建群聊应用程序 2438.1 技术需求 2438.2 创建一个Angular项目 2458.3 创建新的Firebase账户 2488.4 创建一个Firebase应用程序 2528.5 配置Angular Material组件 2548.5.1 添加Browser Animations模块 2558.5.2 配置默认的主题 2558.5.3 添加Material Icons库 2558.5.4 添加导航栏 2568.5.5 利用材质工具栏测试应用程序 2578.6 构建登录对话框 2588.6.1 实现Material界面 2598.6.2 错误处理机制 2618.6.3 准备聊天组件占位符 2628.7 将登录对话框连接至Firebase Authentication 2638.7.1 启用注册供应商 2648.7.2 创建示例账户 2668.7.3 集成Login对话框和Firebase 2688.8 配置实时数据库 2718.9 渲染聊天群列表 2758.10 实现群消息页面 2798.11 显示群消息 2818.12 发送群消息 2858.12.1 更新消息列表界面 2888.12.2 进一步改进 2888.13 验证Electron Shell 2898.14 本章小结 2909章 构建eBook编辑器和生成器 2919.1 技术需求 2919.2 创建项目结构 2929.2.1 生成新的React应用程序 2929.2.2 安装编辑器组件 2939.2.3 测试Web应用程序 2989.2.4 与Electron Shell集成 3009.3 升级代码并使用React Hooks 3019.4 控制键盘快捷方式 3029.4.1 加载文件 3039.4.2 保存文件 3069.5 集成应用程序菜单 3089.6 设置电子书生成器 3119.6.1 安装Docker 3129.6.2 运行Pandoc容器 3159.6.3 将文档发送至主进程(Node.js) 3179.7 从Electron中调用Docker命令 3209.7.1 将标记文本发送至Node.js进程 3209.7.2 将标记文本保存至本地磁盘 3209.8 生成PDF电子书 3239.9 生成ePub电子书 3259.10 本章小结 32810章 构建桌面数字钱包 32910.1 技术需求 32910.2 利用React生成项目 33010.3 集成Ant Design库 33210.4 设置个人以太坊区块链 33410.5 配置Ethereum JavaScript API 33810.6 显示以太坊节点信息 34010.6.1 获取节点信息 34010.6.2 在Header中渲染节点信息 34110.7 集成应用程序菜单 34210.8 渲染账户列表 34410.9 显示账户余额 34710.10 将以太转至另一个账户中 35010.11 打包应用程序并发布 35510.12 本章小结 358

在这里插入图片描述

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

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

相关文章

在 Ubuntu 22.04安装配置 Ansible

一、按官网指引安装 我使用的ubuntu22.04版本&#xff0c;使用apt安装。官网指引如下&#xff1a; $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible 由于内部网络…

36 机器学习(四):异常值检测|线性回归|逻辑回归|聚类算法|集成学习

文章目录 异常值检测箱线图z-score 保存模型 与 使用模型回归的性能评估线性回归正规方程的线性回归梯度下降的线性回归原理介绍L1 和 L2 正则化的介绍api介绍------LinearRegressionapi介绍------SGDRegressor 岭回归 和 Lasso 回归 逻辑回归基本使用原理介绍正向原理介绍损失…

Elasticsearch集群搭建与相关知识点整理

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章参考网上的课程&#xff0c;介绍Elasticsearch集群的搭建&#xff0c;以及Elasticsearch集群相关知识点整理。 如果文章有什么需要改进的地方还请大佬不吝赐教&am…

Git Cherry Pick的使用

cherry-pick命令的基本用法 cherry-pick命令的基本语法如下&#xff1a; git cherry-pick <commit>其中&#xff0c;<commit>是要应用的提交的哈希值或分支名。该命令会将指定的提交应用到当前分支上&#xff0c;并创建一个新的提交。 使用场景 cherry-pick命令…

【JavaEE】JUC 常见的类 -- 多线程篇(8)

JUC 常见的类 1. Callable 接口2. ReentrantLock3. 原子类4. 线程池5. 信号量 Semaphore6. CountDownLatch 1. Callable 接口 Callable Interface 也是一种创建线程的方式 Runnable 能表示一个任务 (run方法) – 返回 voidCallable 也能表示一个任务(call方法) 返回一个具体的…

ArcGIS笔记11_提取栅格中的数据到点要素

本文目录 前言Step 1 准备好点要素和栅格文件Step 2 多值提取到点 前言 很多时候需要将栅格中的数据提取到点要素&#xff0c;让点获取到栅格文件对应坐标所包含的数据&#xff0c;本博文主要介绍这个操作。 Step 1 准备好点要素和栅格文件 如下图所示&#xff1a; Step 2 多…

基于MATLAB的图像条形码识别系统(matlab毕毕业设计2)

摘要 &#xff1a; 本论文旨在介绍一种基于MATLAB的图像条形码识别系统。该系统利用计算机视觉技术和图像处理算法&#xff0c;实现对不同类型的条形码进行准确识别。本文将详细介绍系统学习的流程&#xff0c;并提供详细教案&#xff0c;以帮助读者理解和实施该系统。 引言…

02HTML功能元素

1.功能元素 1.1.列表标签 ​ 列表标签的作用: 给一堆数据添加列表语义, 也就是告诉搜索引擎告诉浏览器这一堆数据是一个整体 - HTML中列表标签的分类 ​ 无序列表(最多)(unordered list) ​ 有序列表(最少)(ordered list) ​ 定义列表(其次)(definition list) 1.1.1.无序列…

notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全

notepad 批量替换删除指定字符之后 或者 之前的字符&#xff0c;Notepad批量替换使用大全 资源宝分享&#xff1a;www.httple.net 注意: 不支持多行表达式 (involving \n, \r, etc). 1 基本表达式 符号解释.匹配任意字符&#xff0c;除了新一行(\n)。也就是说 “.”可以匹配 \…

uniapp map地图实现marker聚合点,并点击marker触发事件

1.uniapp官方文档说明 2.关键代码片段 // 仅调用初始化&#xff0c;才会触发 on.("markerClusterCreate", (e) > {})this._mapContext.initMarkerCluster({enableDefaultStyle: false, // 是否使用默认样式zoomOnClick: true, // 点击聚合的点&#xff0c;是否…

经典算法试题(二)

文章目录 一、岁数1、题目2、思路讲解3、代码实现4、结果 二、打碎的鸡蛋1、题目2、思路讲解3、代码实现4、结果 三、分糖1、题目2、思路讲解3、代码实现4、结果 四、兔子产子1、题目2、思路讲解3、代码实现4、结果 五、矩阵问题1、题目2、思路讲解3、代码实现4、结果 六、谁是…

计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程

计网----数据包在传输中的变化过程&#xff0c;单播组播和广播&#xff0c;ARP协议&#xff0c;ARP代理&#xff0c;免费ARP&#xff0c;DNS协议&#xff0c;路由数据转发过程 一.数据包在传输中的变化过程&#xff08;在同一个路由器下&#xff09; 1.传输数据时&#xff0c…

Spring IOC之@ComponentScan

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Redis基本命令和常用数据类型

文章目录 前言一、Redis简介二、基本操作1.赋值2.取值3.切换数据库4.查看数据库所有键&#xff08;key&#xff09;5.查看键值类型6.移动键值到其他数据库7.设置键值生存时间&#xff08;两种&#xff09;8.查看键值生存时间9.查看当前数据库大小10.判断键是否存在11.清空当前数…

洛谷 P1216 [USACO1.5] [IOI1994]数字三角形题解

观察题目我们发现从前往后推会有条件判断&#xff0c;不容易写出来。所以就从后往前推。 也就是说后面的状态已经是推出来了&#xff0c;保证是最大值。 //数字三角形 #include<iostream> using namespace std; const int N 510; int f[N][N], n;int main() {ios::sync…

转行做程序员,多晚都不晚

大家好啊&#xff0c;我是董董灿。 最近有不少小伙伴加我微信咨询一些问题&#xff0c;有同学想了解AI行业的现状&#xff0c;想着转行的&#xff0c;也有在校生想了解毕业后工作方向的&#xff0c;当然也有想学习编程知识的。 诚惶诚恐&#xff0c;没想到之前写的文章&#…

Go开始:Go基本元素介绍

标识符与关键字 在任何编程语言中&#xff0c;标识符和关键字都是核心概念&#xff0c;Go也不例外。标识符用于命名各种类型的代码元素&#xff0c;如变量、常量、函数等。关键字是预留的词汇&#xff0c;用于指示编程语言的特定操作。在本部分中&#xff0c;我们将详细介绍Go语…

如何使用BERT生成单词嵌入?

阿比贾特萨拉里 一、说明 BERT&#xff0c;或来自变形金刚&#xff08;Transformer&#xff09;的双向编码器表示&#xff0c;是由谷歌开发的强大语言模型。它已广泛用于自然语言处理任务&#xff0c;例如情感分析、文本分类和命名实体识别。BERT的主要特征之一是它能够生成单词…

Servlet的生命周期

2023.10.18 WEB容器创建的Servlet对象&#xff0c;这些Servlet对象都会被放到一个集合当中&#xff08;HashMap&#xff09;&#xff0c;这个集合当中存储了Servlet对象和请求路径之间的关系 。只有放到这个HashMap集合中的Servlet才能够被WEB容器管理&#xff0c;自己new的Ser…

【经历】跨境电商公司目前已在职近2年->丰富且珍贵

我入职了跨境电商公司 *背景 上篇说我在2021-11月离职了&#xff0c;交接期间已经拿到了新公司的offer&#xff0c;然后因上家公司项目交接时间比较长(原因在上篇)&#xff0c;导致新公司这边延迟了两次入职的时间&#xff0c;最后结果是直接无缝衔接了新公司&#xff08;周五…