我是靠谱客的博主 跳跃鼠标,最近开发中收集的这篇文章主要介绍Springboot + WebJars + React : HelloWorld 项目pom.xmlSpringBoot Java入口程序前端 React 应用运行效果,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
作为Java
程序员,某些情况下,我们需要React
和ES6
严谨并且快速地表达一些原型思想。这种情况下,全套的类似npm
+webpack
这种工具栈略显厚重,完全使用原生Javascript
或者jQuery
表达逻辑又显得过于底层和零碎。这个时候,我们可以考虑使用Springboot
+ WebJars
+ React
。该组合有如下好处 :
- 目标
web
应用可以以jar
包方式独立部署和运行; - 使用
WebJars
方式管理三方JavaScript
包,避免琐碎易错的手工管理; - 前后端开发在同一个开发项目内完成;
ES6
模块化使JavaScript
跟Java
语言有更多相似,对Java
开发者更友好;React
组件能力+JSX
让你从琐碎底层的Javascript
+DOM
操作细节上解脱出来,专注于业务要素;
现在,我们分享一下源代码。需要先说明的一点是,这是一个maven
项目。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<groupId>com.andy</groupId>
<artifactId>springboot-webjar-react-demo</artifactId>
<version>0.0.1</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>react</artifactId>
<version>16.8.5</version>
</dependency>
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>react-dom</artifactId>
<version>16.8.5</version>
</dependency>
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>babel</artifactId>
<version>5.8.38</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-locator</artifactId>
<version>0.30</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
对该项目的一些解释 :
- 使用
spring-boot 2.1.4
; - 使用
spring-boot-starter-web
声明这是一个web
项目,缺省使用内置tomcat
在8080
端口提供服务; - 引入
react/react-dom webjars
,这是ReactJS web
开发必须可少的本尊; - 引入
bootstrap webjar
用于css
效果演示; - 因为
bootstrap
潜在依赖于jquery
,所以也引入了jquery webjar
; - 因为浏览器并不能理解
JSX
语法,所以需要引入babel webjar
; - 引入
webjars-locator
,这样HTML
文件中三方库引入时可以省略版本信息;
SpringBoot Java
入口程序
package com.andy.webJarWebDemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoWebApplication {
public static void main(String[] args) {
SpringApplication.run(DemoWebApplication.class, args);
}
}
前端 React
应用
入口页面 resources/static/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.min.css"/>
<script src="/webjars/react/umd/react.production.min.js"></script>
<script src="/webjars/react-dom/umd/react-dom.production.min.js"></script>
<script src="/webjars/babel/browser.min.js"></script>
<script type="text/babel" src="./app.jsx"></script>
<title>Springboot WebJars ReactJS -- Hello World</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
对本入口文件的一些说明 :
- 使用
resources/static/index.html
是因为Spring MVC
会自动将其映射到/
; - 注意上面
./app.jsx
的脚本内容语法实际上是JSX
,所以type
必须为text/babel
以确保浏览器可以理解; - 注意上面
./app.jsx
中的前缀./
不能省略; - 注意
id
为root
的HTML
元素div
,这是跟下面React
应用组件代码的连接点;
React
应用组件 resources/static/app.jsx
class App extends React.Component {
render() {
return (<div className="jumbotron jumbotron-fluid">
<div className="container">
<h1 className="display-4">Hello World</h1>
<p className="lead">This is a modified jumbotron that occupies the entire horizontal space of its
parent.</p>
<a className="btn btn-primary btn-lg" href="#" role="button">Learn more</a>
</div>
</div>);
}
}
// ========================================
ReactDOM.render(<App/>, document.getElementById('root'));
对本React
应用组件的一些说明 :
- 语法实际上是
JSX
,文件结尾可以是jsx
,也可以是其他,比如js
; - 该文件定义了一个
React
组件App
,它向用户展示了一个Bootstrap
的jumbotron
组件; ReactDOM.render
将React
组件App
渲染到id
为root
的HTML
元素div
;
运行效果
最终我们运行该应用,它会在http://localhost:8080
展示该页面如下 :
最后
以上就是跳跃鼠标为你收集整理的Springboot + WebJars + React : HelloWorld 项目pom.xmlSpringBoot Java入口程序前端 React 应用运行效果的全部内容,希望文章能够帮你解决Springboot + WebJars + React : HelloWorld 项目pom.xmlSpringBoot Java入口程序前端 React 应用运行效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复