笔记仓库: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
分支即可。
顶
踩发表评论
相关推荐
基于 React + Webpack 的音乐相册。 演示地址 https://nnngu.github.io/MusicPhoto - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审...
综上所述,"react-基于ReactWebpack的音乐相册"项目展示了如何利用现代前端技术栈,包括React、Webpack、Babel等,构建一个交互式的Web应用。这个项目涵盖了组件化开发、模块化组织代码、资源优化等多个重要知识点,...
现代前端框架如React或Vue.js也有成熟的组件库,提供现成的相册解决方案。 3. **动态时钟**:动态时钟是指在网页上实时显示当前时间的功能。这通常通过JavaScript实现,使用`Date`对象获取当前时间,并通过`...
在网页开发中,JavaScript(简称JS)是一种必不可少的前端编程语言,它被广泛用于实现...同时,随着Web技术的不断发展,还可以结合现代前端框架(如React、Vue等)进一步优化相册功能,实现更复杂的交互和性能优化。
"遇见家"项目是一个基于JavaScript技术的Web应用,旨在提供一个互动式的家庭体验平台。从提供的标签"JavaScript"我们可以推断,这个项目的核心技术栈是以JavaScript为基础的,可能包括前端开发、交互设计以及可能的...
1. **前端框架与库**:LastLightbox可能基于某个前端框架如React、Vue或Angular构建,或者使用JavaScript库如jQuery。通过查看源码,我们可以了解这些框架或库在实际项目中的应用,学习如何组织组件、管理状态和处理...
MaterialUI 是一个基于 Google 的 Material Design 设计规范的 React 组件库,它提供了一系列预先设计的 UI 组件,帮助开发者快速构建美观、响应式的用户界面。 在这个名为 "nextjs-materialui-album" 的实践中,...
"album_project"是一个基于JavaScript技术实现的项目,很可能是一个用于创建和展示相册的应用程序。JavaScript作为客户端脚本语言,广泛应用于网页动态效果和交互设计,使得用户可以在不刷新整个页面的情况下更新...
在 "bl-galeries" 这个项目中,我们可以推测其主要功能可能包括展示图片、组织图片成不同的相册或者画廊,以及可能提供一些交互功能,如缩放、滑动和导航。由于没有具体的描述,我们将基于 TypeScript 的常见应用...
"photo-app"是一个基于TypeScript开发的项目,主要聚焦于图像管理和编辑的应用程序。TypeScript是一种强类型、静态类型的超集语言,它扩展了JavaScript,提供了更好的工具支持和可维护性,尤其适合大型项目开发。在...
"pastbook-clone-frontend" 是一个前端项目,很可能是对某个在线相册或记忆册应用的克隆版。从项目名我们可以推测,它可能是基于Web的,目标是创建一个类似于Pastbook的服务,允许用户上传、编辑和分享他们的照片。 ...
"my-photo-app" 是一个基于JavaScript技术开发的相册应用程序,它充分利用了Telerik平台的交互功能,为用户提供了一个完整的照片管理和分享体验。这个项目很可能包含HTML、CSS和JavaScript文件,用于构建用户界面和...
"MonkeyGoHappy相机版本"是一个基于JavaScript开发的项目,它可能是用于创建一款具有特定功能或体验的拍照应用。JavaScript是一种广泛使用的编程语言,尤其在Web开发中,它为前端交互提供了强大的支持。在这个项目中...