`

基于 React + Webpack 的音乐相册项目(上)

 
阅读更多

笔记仓库:https://github.com/nnngu/LearningNotes


上一篇文章用爬虫自动下载了一些图片,这一篇就用这些图片做一个音乐相册吧!

效果预览

点击图片,切换到背面:

演示地址

演示地址:https://nnngu.github.io/MusicPhoto/

环境搭建

1、安装 npm,安装成功后,在终端输入 npm -v 可以查看它的版本。

2、安装generator-react-webpack,使用如下命令:

npm install -g generator-react-webpack

安装完成之后,输入npm list --depth=0 -global 可以查看版本。

3、创建项目,打开你用来存放代码的目录,然后输入:yo react-webpack MusicPhoto

4、创建完成,项目的目录如下图:

需要注意的几个地方:

  • ① cfg 目录是配置文件所在的目录
    • 重点关注 cfg 目录里面的 defaults.js 文件
  • ② src 项目的源代码主要在这里面
  • ③ package.json 用来管理和配置依赖模块

添加 autoprefixer-loader 模块

autoprefixer-loader 是用来处理 css 的模块,安装命令:

npm install autoprefixer-loader --save-dev

然后打开 cfg 目录中的 defaults.js 添加如下配置信息:

添加 json-loader 模块

json-loader 是用来处理 json 的模块,安装命令:

npm install json-loader --save-dev

然后打开 cfg 目录中的 defaults.js 添加如下配置信息:

添加图片

1、在 src 目录下添加 images 目录和一些图片,如下图:(图片尺寸全部是 260 * 260)

2、添加 imageDatas.json 如下图:

imageDatas.json 里面的代码请参照项目的源代码。

3、在src/components/Main.js中引入imageDatas.json 代码如下:

// 获取图片的 json 数据
var imagesData = require('../data/imageDatas.json');

4、根据图片的文件名,生成图片URL。

src/components/Main.js

/**
 * @imagesDataArray  {Array}
 * @return {Array}
 */
imagesData = (function getImageURL(imagesDataArray) {
  for (var i = 0, j = imagesDataArray.length; i < j; i++) {
    var singleImageData = imagesDataArray[i];

    singleImageData.imageURL = require('../images/' + singleImageData.fileName);

    imagesDataArray[i] = singleImageData;
  }
  return imagesDataArray;
})(imagesData);

配置字体

打开 cfg 目录中的 defaults.js 添加如下配置信息:

组件的绑定

src/index.html 中的关键代码:

src/index.js 中的关键代码:

代码逻辑

主要的代码逻辑在 Main.js中,主要的布局样式在 App.scss中。如下图:

具体代码请参照项目的源代码 https://github.com/nnngu/MusicPhoto

发布到Github Pages

1、修改cfg/defaults.js中的publicPath,改为publicPath: './assets/', 如下图:

2、打包,使用npm run dist指令。打包完成可以看到如下目录:

3、把打包好的目录 push 到 GitHub 的 gh-pages 分支,使用如下命令:

git subtree push --prefix=dist origin gh-pages

4、在GitHub 对应的仓库里面开启 Github Pages 功能,并选择 gh-pages分支即可。

1
0
分享到:
评论

相关推荐

    基于 React + Webpack 的音乐相册+源代码+文档说明

    基于 React + Webpack 的音乐相册。 演示地址 https://nnngu.github.io/MusicPhoto - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审...

    react-基于ReactWebpack的音乐相册

    综上所述,"react-基于ReactWebpack的音乐相册"项目展示了如何利用现代前端技术栈,包括React、Webpack、Babel等,构建一个交互式的Web应用。这个项目涵盖了组件化开发、模块化组织代码、资源优化等多个重要知识点,...

    3D球体特效 相册 + 动态时钟 + 免扣

    现代前端框架如React或Vue.js也有成熟的组件库,提供现成的相册解决方案。 3. **动态时钟**:动态时钟是指在网页上实时显示当前时间的功能。这通常通过JavaScript实现,使用`Date`对象获取当前时间,并通过`...

    js 实现相册特效案例

    在网页开发中,JavaScript(简称JS)是一种必不可少的前端编程语言,它被广泛用于实现...同时,随着Web技术的不断发展,还可以结合现代前端框架(如React、Vue等)进一步优化相册功能,实现更复杂的交互和性能优化。

    遇见家

    "遇见家"项目是一个基于JavaScript技术的Web应用,旨在提供一个互动式的家庭体验平台。从提供的标签"JavaScript"我们可以推断,这个项目的核心技术栈是以JavaScript为基础的,可能包括前端开发、交互设计以及可能的...

    LastLightbox-develop-源码.rar

    1. **前端框架与库**:LastLightbox可能基于某个前端框架如React、Vue或Angular构建,或者使用JavaScript库如jQuery。通过查看源码,我们可以了解这些框架或库在实际项目中的应用,学习如何组织组件、管理状态和处理...

    nextjs-materialui-album:[WIP]实践项目

    MaterialUI 是一个基于 Google 的 Material Design 设计规范的 React 组件库,它提供了一系列预先设计的 UI 组件,帮助开发者快速构建美观、响应式的用户界面。 在这个名为 "nextjs-materialui-album" 的实践中,...

    album_project

    "album_project"是一个基于JavaScript技术实现的项目,很可能是一个用于创建和展示相册的应用程序。JavaScript作为客户端脚本语言,广泛应用于网页动态效果和交互设计,使得用户可以在不刷新整个页面的情况下更新...

    bl-galeries

    在 "bl-galeries" 这个项目中,我们可以推测其主要功能可能包括展示图片、组织图片成不同的相册或者画廊,以及可能提供一些交互功能,如缩放、滑动和导航。由于没有具体的描述,我们将基于 TypeScript 的常见应用...

    photo-app

    "photo-app"是一个基于TypeScript开发的项目,主要聚焦于图像管理和编辑的应用程序。TypeScript是一种强类型、静态类型的超集语言,它扩展了JavaScript,提供了更好的工具支持和可维护性,尤其适合大型项目开发。在...

    pastbook-clone-frontend

    "pastbook-clone-frontend" 是一个前端项目,很可能是对某个在线相册或记忆册应用的克隆版。从项目名我们可以推测,它可能是基于Web的,目标是创建一个类似于Pastbook的服务,允许用户上传、编辑和分享他们的照片。 ...

    my-photo-app

    "my-photo-app" 是一个基于JavaScript技术开发的相册应用程序,它充分利用了Telerik平台的交互功能,为用户提供了一个完整的照片管理和分享体验。这个项目很可能包含HTML、CSS和JavaScript文件,用于构建用户界面和...

    monkeyGoHappy相机版本

    "MonkeyGoHappy相机版本"是一个基于JavaScript开发的项目,它可能是用于创建一款具有特定功能或体验的拍照应用。JavaScript是一种广泛使用的编程语言,尤其在Web开发中,它为前端交互提供了强大的支持。在这个项目中...

Global site tag (gtag.js) - Google Analytics