목차
2、qq音乐播放器" >2、qq音乐播放器
웹 프론트엔드 View.js Spring Boot + Vue 开发网抑云音乐(附源码)

Spring Boot + Vue 开发网抑云音乐(附源码)

Jul 26, 2023 pm 02:37 PM
electron

前言

虽然 B/S 是目前开发的主流,但是 C/S 仍然有很大的市场需求。受限于浏览器的沙盒限制,网页应用无法满足某些场景下的使用需求,而桌面应用可以读写本地文件、调用更多系统资源,再加上 Web 开发的低成本、高效率的优势,这种跨平台方式越来越受到开发者的喜爱。

Electron 是一个基于 Chromium 和 Node.js,使用 HTML、CSS 和 JavaScript 来构建跨平台应用的跨平台开发框架,兼容 Mac、Windows 和 Linux。目前,Electron 已经创建了包括 VScode 和 Atom 在内的大量应用。


环境搭建

创建 Electron 跨平台应用之前,需要先安装一些常用的工具,如 Node、vue 和 Electron 等。

安装Node

进入 Node 官网下载页 http://nodejs.cn/download/,然后下载对应的版本即可,下载时建议下载稳定版本。如果安装 Node 使用 Homebrew 方式,建议安装时将 npm 仓库镜像改为淘宝镜像,如下所示。

npm config set registry http://registry.npm.taobao.org/或者npm install -g cnpm --registry=https://registry.npm.taobao.org
로그인 후 복사

安装/升级 vue-cli

先执行以下命令,确认下本地安装的 vue-cli 版本。

vue -V
로그인 후 복사

如果没有安装或者不是最新版,可以执行以下命令安装/升级。

npm install @vue/cli -g
로그인 후 복사

安装 Electron

使用如下命令安装 Electron 插件。

npm install -g electron或者cnpm install -g electron
로그인 후 복사

为了验证是否安装成功,可以使用如下的命令。

electron --version
로그인 후 복사

创建运行项目

Electron 官方提供了一个简单的项目,可以执行以下命令将项目克隆到本地。

git clone https://github.com/electron/electron-quick-start
로그인 후 복사

然后在项目中执行如下命令即可启动项目。

cd electron-quick-startnpm installnpm start
로그인 후 복사

启动后项目的效果如下图。

Spring Boot + Vue 开发网抑云音乐(附源码)

除此之外,我们可以使用 vue-cli 脚手架工具来创建项目。

vue init simulatedgreg/electron-vue
로그인 후 복사

然后根据下面的提示一步步选中选项即可创建项目,如下所示。

Spring Boot + Vue 开发网抑云音乐(附源码)

然后,使用 npm install 命令安装项目所需要的依赖包,安装完成之后,可以使用 npm run dev 或 npm run build 命令运行 electron-vue 模版应用程序,运行效果如下图所示。

Spring Boot + Vue 开发网抑云音乐(附源码)

Electron 源码目录

Electron 的源代码主要依据 Chromium 的拆分约定被拆成了许多部分。为了更好地理解源代码,您可能需要了解一下 Chromium 的多进程架构。

Electron 源码目录结构和含义具体如下:

Electron├──atom - Electron 的源代码|  ├── app - 系统入口代码|  ├── browser - 包含了主窗口、UI 和其他所有与主进程有关的东西,它会告诉渲染进程如何管理页面|  |   ├── lib - 主进程初始化代码中 JavaScript 部分的代码|  |   ├── ui - 不同平台上 UI 部分的实现|  |   |   ├── cocoa - Cocoa 部分的源代码|  |   |   ├── gtk - GTK+ 部分的源代码|  |   |   └── win - Windows GUI 部分的源代码|  |   ├── default_app - 在没有指定 app 的情况下 Electron 启动时默认显示的页面|  |   ├── api - 主进程 API 的实现|  |   |   └── lib - API 实现中 Javascript 部分的代码|  |   ├── net - 网络相关的代码|  |   ├── mac - 与 Mac 有关的 Objective-C 代码|  |   └── resources - 图标,平台相关的文件等|  ├── renderer - 运行在渲染进程中的代码|  |   ├── lib - 渲染进程初始化代码中 JavaScript 部分的代码|  |   └── api - 渲染进程 API 的实现|  |       └── lib - API 实现中 Javascript 部分的代码|  └── common - 同时被主进程和渲染进程用到的代码,包括了一些用来将 node 的事件循环|      |        整合到 Chromium 的事件循环中时用到的工具函数和代码|      ├── lib - 同时被主进程和渲染进程使用到的 Javascript 初始化代码|      └── api - 同时被主进程和渲染进程使用到的 API 的实现以及 Electron 内置模块的基础设施|          └── lib - API 实现中 Javascript 部分的代码├── chromium_src - 从 Chromium 项目中拷贝来的代码├── docs - 英语版本的文档├── docs-translations - 各种语言版本的文档翻译├── spec - 自动化测试├── atom.gyp - Electron 的构建规则└── common.gypi - 为诸如 `node` 和 `breakpad` 等其他组件准备的编译设置和构建规则
로그인 후 복사

平时开发时,需要重点关注的就是 src、package.json 和 appveyor.yml 目录。除此之外,其他需要注意的目录如下:

  • script - 用于诸如构建、打包、测试等开发用途的脚本
  • tools - 在 gyp 文件中用到的工具脚本,但与 script 目录不同, 该目录中的脚本不应该被用户直接调用
  • vendor - 第三方依赖项的源代码,为了防止人们将它与 Chromium 源码中的同名目录相混淆, 在这里我们不使用 third_party 作为目录名
  • node_modules - 在构建中用到的第三方 node 模块
  • out - ninja 的临时输出目录
  • dist - 由脚本 script/create-dist.py 创建的临时发布目录
  • external_binaries - 下载的不支持通过 gyp 构建的预编译第三方框架

应用工程目录

使用 electron-vue 模版创建的 Electron 工程结构如下图。

Spring Boot + Vue 开发网抑云音乐(附源码)

和前端工程的项目结构类似,Electron 项目的目录结构如下所示:

  • electron-vue:Electron模版配置。
  • build:文件夹,用来存放项目构建脚本。
  • config:中存放项目的一些基本配置信息,最常用的就是端口转发。
  • node_modules:这个目录存放的是项目的所有依赖,即 npm install 命令下载下来的文件。
  • src:这个目录下存放项目的源码,即开发者写的代码放在这里。
  • static:用来存放静态资源。
  • index.html:则是项目的首页、入口页,也是整个项目唯一的HTML页面。
  • package.json:中定义了项目的所有依赖,包括开发时依赖和发布时依赖。

对于开发者来说, 90% 的工作都是在 src 中完成,src 中的文件目录如下。

Spring Boot + Vue 开发网抑云音乐(附源码)

Electron 应用程序分成三个基础模块:主进程、进程间通信和渲染进程。

1、主进程

Electron 运行 package.json 的 main 脚本(background.js)的进程被称为主进程。在主进程中运行的脚本通过创建web页面来展示用户界面。一个 Electron 应用总是有且只有一个主进程。

2、渲染进程

由于 Electron 使用了 Chromium 来展示 Web 页面,所以 Chromium 的多进程架构也被使用到。每个 Electron 中的 Web 页面运行在它自己的渲染进程中。在普通的浏览器中,Web 页面通常在一个沙盒环境中运行,不被允许去接触原生的资源。然而 Electron 允许用户在 Node.js 的 API 支持下可以在页面中和操作系统进行一些底层交互。

3、主进程与渲染进程通信

主进程使用 BrowserWindow 实例创建页面。每个 BrowserWindow 实例都在自己的渲染进程里运行页面。当一个 BrowserWindow 实例被销毁后,相应的渲染进程也会被终止。主进程管理所有的 Web 页面和它们对应的渲染进程。每个渲染进程都是独立的,它只关心它所运行的 Web 页面。

src 目录结构

在 Electron 目录中,src 会包含 main 和 renderer 两个目录。

main 目录

main 目录会包含 index.js 和 index.dev.js 两个文件。

  • index.js:应用程序的主文件,electron 也从这里启动的,它也被用作 webpack 产品构建的入口文件,所有的 main 进程工作都应该从这里开始。
  • index.dev.js:此文件专门用于开发阶段,因为它会安装 electron-debug 和 vue-devtools。一般不需要修改此文件,但它可以扩展开发的需求。

渲染进程

renderer 是渲染进程目录,平时项目开发源码的存放目录,包含 assets、components、router、store、App.vue 和 main.js。

assets:assets 下的文件如(js、css)都会在 dist 文件夹下面的项目目录分别合并到一个文件里面去。components:此文件用于存放应用开发的组件,可以是自定义的组件。router:如果你了解 vue-router,那么 Electron 项目的路由的使用方式和 vue-router 的使用方式类似。modules:electron-vue 利用 vuex 的模块结构创建多个数据存储,并保存在 src/renderer/store/modules 中。


综合示例

创建 Electron 跨平台应用之前,需要先安装一些常用的工具,如 Node、vue 和 Electron 等。

1、网易云音乐

electron-vue-cloud-music是一款使用Electron+Vue+Ant Design Vue技术开发跨平台桌面应用。下载链接:https://github.com/xiaozhu188/electron-vue-cloud-music。具有如下特点:

  • 拖拽播放

  • 桌面歌词

  • mini模式

  • 自定义托盘右键菜单

  • 任务栏缩略图,歌曲操作

  • 音频可视化

  • 自动/手动检查更新

  • Nedb数据库持久化

  • 自定义安装路径,安装界面美化

  • 浏览器中启动客户端

  • Travis CL,AppVeyor自动构建

  • 换肤,下载,本地歌曲匹配,网络变化桌面通知,分享歌曲/歌单/MV/视频等到QQ空间

  • 登录,私人Fm,歌单,专辑,歌手,排行榜,MV,视频,评论,搜索,用户,动态,粉丝,关注,云盘,收藏...

  • 心动模式,歌词微调,下一首播放,追加播放,单曲循环,随机播放,列表循环

  • 路由导向,局部刷新,首页栏目调整并持久化...

以下是部分运行效果:

Spring Boot + Vue 开发网抑云音乐(附源码)
Spring Boot + Vue 开发网抑云音乐(附源码)

2、qq音乐播放器

qq音乐播放器基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐,使用的技术栈electron-vue+vue+vuex+vue-router+element- UI。可以使用如下的方式来运行项目。

git clone https://github.com/SmallRuralDog/electron-vue-music.git

cd electron-vue-music

npm install

# 运行开发模式
npm run dev

# 打包安装文件
npm run build
로그인 후 복사

部分运行效果如下图。

Spring Boot + Vue 开发网抑云音乐(附源码)

Spring Boot + Vue 开发网抑云音乐(附源码)

위 내용은 Spring Boot + Vue 开发网抑云音乐(附源码)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

vue.js 문자열을 물체로 변환하는 방법은 무엇입니까? vue.js 문자열을 물체로 변환하는 방법은 무엇입니까? Apr 07, 2025 pm 09:18 PM

json.parse () String을 개체에 사용하는 것이 가장 안전하고 효율적입니다. 문자열이 JSON 사양을 준수하고 일반적인 오류를 피하십시오. 코드 견고성을 향상시키기 위해 예외를 처리하려면 시도해보십시오. 보안 위험이있는 Eval () 메소드를 사용하지 마십시오. 거대한 JSON 줄의 경우 성능을 최적화하기 위해 청크 파싱 또는 비동기 구문 분석을 고려할 수 있습니다.

vue.js vs. React : 프로젝트 별 고려 사항 vue.js vs. React : 프로젝트 별 고려 사항 Apr 09, 2025 am 12:01 AM

vue.js는 중소형 프로젝트 및 빠른 반복에 적합한 반면 React는 크고 복잡한 응용 프로그램에 적합합니다. 1) vue.js는 사용하기 쉽고 팀이 불충분하거나 프로젝트 규모가 작는 상황에 적합합니다. 2) React는 더 풍부한 생태계를 가지고 있으며 고성능 및 복잡한 기능적 요구가있는 프로젝트에 적합합니다.

Vue에서 부트 스트랩을 사용하는 방법 Vue에서 부트 스트랩을 사용하는 방법 Apr 07, 2025 pm 11:33 PM

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

vue.js는 배우기가 어렵습니까? vue.js는 배우기가 어렵습니까? Apr 04, 2025 am 12:02 AM

vue.js는 특히 JavaScript Foundation을 가진 개발자에게는 배우기가 어렵지 않습니다. 1) 진보적 인 설계와 반응 형 시스템은 개발 프로세스를 단순화합니다. 2) 구성 요소 기반 개발은 코드 관리를보다 효율적으로 만듭니다. 3) 사용 예제는 기본 및 고급 사용을 보여줍니다. 4) vuedevtools를 통해 일반적인 오류를 디버깅 할 수 있습니다. 5) V-IF/V- 쇼 및 주요 속성 사용과 같은 성능 최적화 및 모범 사례는 애플리케이션 효율성을 향상시킬 수 있습니다.

Vue는 프론트 엔드 또는 백엔드에 사용됩니까? Vue는 프론트 엔드 또는 백엔드에 사용됩니까? Apr 03, 2025 am 12:07 AM

vue.js는 주로 프론트 엔드 개발에 사용됩니다. 1) 사용자 인터페이스 및 단일 페이지 응용 프로그램 구축에 중점을 둔 가볍고 유연한 JavaScript 프레임 워크입니다. 2) vue.js의 핵심은 반응 형 데이터 시스템이며, 데이터가 변경되면 뷰가 자동으로 업데이트됩니다. 3) 구성 요소 개발을 지원하고 UI는 독립적이고 재사용 가능한 구성 요소로 분할 될 수 있습니다.

Vue 용 버튼에 기능을 추가하는 방법 Vue 용 버튼에 기능을 추가하는 방법 Apr 08, 2025 am 08:51 AM

HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

Vue에서 시계를 사용하는 방법 Vue에서 시계를 사용하는 방법 Apr 07, 2025 pm 11:36 PM

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

Vue 다중 페이지 개발은 무엇을 의미합니까? Vue 다중 페이지 개발은 무엇을 의미합니까? Apr 07, 2025 pm 11:57 PM

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 ​​관리하고 유지 관리 할 수 ​​있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 ​​있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

See all articles