为了账号安全,请及时绑定邮箱和手机立即绑定

用户登录前后端分离开发实战案例:

标签:
Java React

用户登录前后端分离开发实战案例:React,npm,webpack,ES6, Kotlin, Spring Boot, Gradle, Freemarker, Material UI

本章通过一个简单用户登录模块全栈开发案例,从前端 React工程的创建、开发,到后端 Spring Boot + Kotlin + Gradle工程的创建,使用 Spring Data JPA 来操作 MySQL数据库, 使用Freemarker视图引擎,从前往后完整的讲解整个开发过程。

前端 React 工程开发

环境准备

本节实例工程的运行环境和技术栈相关清单如下:

运行环境准备:Node

开发工具 IDE:WebStorm

浏览器:Chrome

框架和组件库:react, babel,jquery, material-ui

构建工具:webpack

我们用 webpack + es6 来结合 react 开发前端应用。本章中,我们手动使用npm来安装各种插件,来从头到尾自己搭建环境。当然,在实际的项目开发中,已经有大神们开发好了脚手架,例如 create-react-app(https://github.com/facebook/create-react-app),我们直接使用脚手架就可以了。为了保持技术细节的原汁原味,我们本章先来带领大家一步一步地来手工搭建 webpack + es6 的 React前端开发工程。

使用npm搭建React的webpack环境

本节我们来介绍如何通过 npm一步一步创建 React前端工程。我们通过Webpack打包构建React工程。

安装配置Webpack环境

我们主要来安装react react-dom babel等npm包,设置webpack.config.js,打包输出bundle.js。

安装Webpack

1.创建项目文件夹

mkdir simple-login

新建 simple-login 文件夹,在此文件夹内进行webpack本地安装。

2.npm初始化

 $ npm init -y
Wrote to /Users/jack/spring-boot-book/chapter03/front-end/simple-login/package.json:{  "name": "simple-login",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"
  },  "keywords": [],  "author": "",  "license": "ISC"}

初始化,目录下生成一个 package.json 文件,内容如上。

3.安装 webpack

WebPack是什么:https://github.com/webpack/webpack-cli

npm install --save-dev webpack

安装成功后 simple-login 目录中会出现node_modules 目录 。

注意:不推荐使用全局安装npm install --global webpack

我们可以看到 .bin 目录下面的webpack脚本:

webp

image

打开脚本看到源码如下:

#!/usr/bin/env nodeprocess.exitCode = 0;/**
 * @param {string} command process to run
 * @param {string[]} args commandline arguments
 * @returns {Promise<void>} promise
 */const runCommand = (command, args) => {    const cp = require("child_process");    return new Promise((resolve, reject) => {        const executedCommand = cp.spawn(command, args, {
            stdio: "inherit",
            shell: true
        });

        executedCommand.on("error", error => {
            reject(error);
        });

        executedCommand.on("exit", code => {            if (code === 0) {
                resolve();
            } else {
                reject();
            }
        });
    });
};
...

通过脚本中的

#!/usr/bin/env node

我们即可知道,这是一个使用 node运行环境执行的一个 js。此时,我们 package.json 文件中在devDependencies 下面多了一行 webpack 包的依赖:

{  "name": "simple-login",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"
  },  "keywords": [],  "author": "",  "license": "ISC",  "devDependencies": {    "webpack": "^4.25.1"
  }
}
安装依赖包

使用 npm install 命令继续安装 react react-dom babel 等依赖包:

npm install --save react react-dom
npm install --save-dev babel-core babel-loader babel-preset-react babel-preset-es2015

本地安装的webpack命令为: ./node_modules/.bin/webpack

我们可以通过打开 package.json ,在 "scripts": {} 中加入"start": "webpack" ,用 npm start 命令代替 webpack命令。

这个时候,我们的 package.json 文件内容变成了

{  "name": "simple-login",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "start": "webpack",    "test": "echo \"Error: no test specified\" && exit 1"
  },  "keywords": [],  "author": "",  "license": "ISC",  "devDependencies": {    "babel-core": "^6.26.3",    "babel-loader": "^8.0.4",    "babel-preset-es2015": "^6.24.1",    "babel-preset-react": "^6.24.1",    "webpack": "^4.25.1"
  },  "dependencies": {    "react": "^16.6.1",    "react-dom": "^16.6.1"
  }
}



作者:东海陈光剑
链接:https://www.jianshu.com/p/21a6a7ac695f


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消