webpack项目篇(六十六):react 全家桶 和 webpack 开发 h5 商城项目的整体思路

简介: webpack项目篇(六十六):react 全家桶 和 webpack 开发 h5 商城项目的整体思路

说明

玩转 webpack 学习笔记



商城技术栈选型

前端:

  • react 全家桶 + webpack + axios + lib-flexible + slick-carousel

后端:

  • koa + mysql + sequelize



商城架构设计

image.png

商城界面 UI 设计

f4d74960d38e465598ad9367d7079ef7.png


React 全家桶环境搭建


1、初始化项目

npm init -y


2、创建项目目录

创建 actions、reducers、store 等


  • src/actions/ 放置所有的 actions
  • src/reducers 放置所有的 reducers
  • 使用 Provider 传递 store,Store 通过 Provider 传递给容器组件


0958100c07674f548ae15c6980406d54.png


3、安装依赖

安装 react、react-dom、redux、react-redux

npm i react react-dom redux react-redux -S


安装 @babel/core

npm i @babel/core -D


安装 geektime-builder-webpack 用于 webpack 的配置

npm i geektime-builder-webpack -D


这里的脚本都是用的 builder-webpack-geektime 里面的

package.json

{
  "name": "shopping-h5",
  "version": "1.0.0",
  "description": "shopping h5",
  "main": "index.js",
  "scripts": {
    "dev": "webpack-dev-server --config ./node_modules/builder-webpack-geektime/lib/webpack.dev.js --open",
    "build": "webpack --config ./node_modules/builder-webpack-geektime/lib/webpack.prod.js",
    "build:ssr": "webpack --config ./node_modules/builder-webpack-geektime/lib/webpack.ssr.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.19.0",
    "lib-flexible": "^0.3.2",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-redux": "^7.1.0",
    "react-slick": "^0.25.2",
    "redux": "^4.0.4",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "slick-carousel": "^1.8.1"
  },
  "devDependencies": {
    "@babel/core": "^7.4.4",
    "@babel/plugin-proposal-class-properties": "^7.5.5",
    "@babel/plugin-syntax-dynamic-import": "^7.2.0",
    "@babel/preset-env": "^7.4.4",
    "@babel/preset-react": "^7.0.0",
    "builder-webpack-geektime": "^1.0.3",
    "webpack": "^4.31.0",
    "webpack-cli": "^3.3.2",
    "webpack-dev-server": "^3.3.1"
  }
}



数据库实体设计

部分表字段


5cb6f995ffc74ee0a2cf5d5cf1d5d57b.png



功能开发要点


浏览器端


  • 组件化,组件颗粒度尽可能小
  • 直接复用 builder-webpack-geektime 的构建配置,无需关注构建脚本

服务端

  • MVC 开发方式,数据库基于 Sequelize
  • Rest API 风格
  • 采用 JWT 进行鉴权


JSON Web Token 工作原理

a87e4e9f11c3402dbe581fa8a9e0c71e.png




谈谈 Web 商城的性能优化策略

渲染优化


  • 首⻚页、列列表⻚页、详情⻚页采⽤用 SSR 或者 Native 渲染
  • 个人中心页预渲染

弱网优化

  • 使用离线包、PWA 等离线缓存技术

Webview 优化

  • 打开 Webview 的同时并行的加载页面数据



代码

有部分代码,可以参考这个:https://github.com/kaimo313/webpack-demo


d0d25ba060b14b7d8f12d69ab06db954.png











目录
相关文章
|
2月前
|
运维 前端开发 数据可视化
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
本文分享了一个基于React 19构建的用户注册表单系统,采用模块化CSS和状态驱动视图更新,实现实时校验、错误提示与提交反馈等功能。核心亮点包括验证规则引擎(如密码复杂度校验)、交互反馈体系(输入框警示、按钮禁用)及加载动画优化。通过函数式更新确保状态同步,正则表达式实现多条件验证,CSS伪元素打造流畅体验。代码结构清晰,可扩展性强,适合作为React表单开发模板。文末附CodeBuddy免费下载链接,助力高效开发!
54 1
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
|
9月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
284 4
React开发需要了解的10个库
|
8月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
9月前
|
前端开发 JavaScript 开发者
React 组件化开发最佳实践
【10月更文挑战第4天】React 组件化开发最佳实践
201 4
|
9月前
|
移动开发 JavaScript 前端开发
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
这篇文章主要介绍了如何通过配置Webpack的插件,如HtmlWebpackPlugin、uglifyjs-webpack-plugin和webpack-dev-server,来简化前端开发流程。
343 0
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
|
9月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
2706 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
10月前
|
XML 移动开发 前端开发
使用duxapp开发 React Native App 事半功倍
对于Taro的壳子,或者原生React Native,都会存在 `android` `ios`这两个文件夹,而在duxapp中,这些文件夹的内容是自动生成的,那么对于需要在这些文件夹中修改的配置内容,例如包名、版本号、新架构开关等,都通过配置文件的方式配置了,而不需要需修改具体的文件
|
移动开发 JavaScript 前端开发
ReactNative开发环境的搭建与开发前准备(三)
ReactNative开发环境的搭建与开发前准备
130 0
ReactNative开发环境的搭建与开发前准备(三)
|
移动开发 前端开发 网络协议
ReactNative开发环境的搭建与开发前准备(二)
ReactNative开发环境的搭建与开发前准备
186 0
ReactNative开发环境的搭建与开发前准备(二)
|
移动开发 Java Linux
ReactNative开发环境的搭建与开发前准备(一)
ReactNative开发环境的搭建与开发前准备
174 0
ReactNative开发环境的搭建与开发前准备(一)