spring boot

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/

vue

https://vuejs.org/guide/

vue-router

https://github.com/vuejs/vue-router/tree/dev/docs/zh-cn

使用vue+vue-router后不再由模版引擎或jsp生成页面,后台只进行json类型的数据交互。

实际第一次配置容易遇到一些问题:

1.url中含#号

解决方法:创建 router 实例时配置

const router = new VueRouter({
mode: 'history',
routes: [...]
})

http://router.vuejs.org/en/essentials/history-mode.html

2.参照https://github.com/vuejs/vue-router/blob/dev/docs/zh-cn/essentials/getting-started.md

点击链接跳转正常,浏览器显示地址正常

直接输入***/foo则报错,找不到页面

F12开启浏览器控制台发现:点击跳转并没有发送request 而是通过HTML5 History API

本质上是一个只有index.html的单页面应用

所以对应的后台要把所有404跳转到index.html

@SpringBootApplication
public class DemoApplication { @Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/");
container.addErrorPages(error404Page);
});
} public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

红色部分代码实现该功能

3.这样又出现了一个新的问题

随便输入url,即使不是vue-router中的url都会跳转到index,不再有404页面

解决方法


var router = new VueRouter();
router.map({
'a':{},
'b':{},
// not found handler
'*': {
component: require('./../components/not-found.vue')
}
});

配置其路由规则a跳转到XXX,b跳转到XXX(a,b存在对应),无对应跳转到not-found.vue作为404页面


参考实例https://github.com/kucharzyk/vuejs-java-starter 该项目使用中间件较多,其实并不需要node、npm(当时我还以为有node的一层服务器),只是方便管理

我也是刚开始尝试vue.js,写了个最基本的方便大家更好的理解https://github.com/wqbill/my-first-vue(灰常灰常基本,纯属展示一个解决完上述3个问题后的最基本框架Orz)

spring boot使用vue+vue-router构建单页面应用的更多相关文章

  1. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  2. Spring Security默认的用户登录表单 页面源代码

    Spring Security默认的用户登录表单 页面源代码 <html><head><title>Login Page</title></hea ...

  3. 借助 Vue 来构建单页面应用

    原文: https://github.com/MeCKodo/vue-tutorial 主题 Vue.js (1/2)Vue构建单页应用最佳实战 前言 我们将会选择使用一些vue周边的库 1.使用no ...

  4. 新手vue构建单页面应用实例

    本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见! 步骤: 1.使用vue-cli创建项目2.使用vue-router实现单页路由3.用vuex管理我们的数据流4.使用vue-resource请 ...

  5. 用 vue cli 脚手架搭建单页面 Vue 应用(进阶2)

    1.配置 Node 环境. 自行百度吧. 安装好了之后,打开 cmd .运行 node -v .显示版本号,就是安装成功了. 注:不要安装8.0.0以上的版本,和 vue-cli 不兼容. 我使用的 ...

  6. Spring Boot中使用Swagger2自动构建API文档

    由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...

  7. spring boot 教程(一) 构建我的第一个Spring boot

    Spring Boot特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标, ...

  8. Spring Boot 2 + Thymeleaf:服务器端表单验证

    表单验证分为前端验证和服务器端验证.服务器端验证方面,Java提供了主要用于数据验证的JSR 303规范,而Hibernate Validator实现了JSR 303规范.项目依赖加入spring-b ...

  9. Spring Boot 中 10 行代码构建 RESTful 风格应用

    RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 ...

随机推荐

  1. bzoj3032 七夕祭题解

    题面 TYVJ七夕祭和11区的夏祭的形式很像.矩形的祭典会场由N排M列共计N×M个摊点组成.虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的.Vani ...

  2. Springboot2.x 自动创建表并且执行初始化数据

    1.使用springboot jdbc初始化数据库 项目结构 schema.sql drop table if exists user; create table user (id bigint(20 ...

  3. 使用dig/nslookup命令查看dns解析详情

    dig-DNS lookup utility 当域名出现访问故障时,可通过域名解析来判断是否有错误的解析导致的问题. 可以看到有请求段和应答段,最后解析出的A记录有两条 dig命令做迭代查询 dig ...

  4. s-s-r + 锐-速

    环境:centos 7 1. wget --no-check-certificate https://freed.ga/github/shadowsocksR.sh; bash shadowsocks ...

  5. 2019-2020-1 20199314 <Linux内核原理与分析>第一周作业

    前言 本周对实验楼的Linux基础入门进行了学习,目前学习到实验九完成到挑战二. 学习和实验内容 快速学习了Linux系统的发展历程及其简介,学习了下的变量.用户权限管理.文件打包及压缩.常用命令的和 ...

  6. 25 (OC)* iOS网络HTTP、TCP、UDP、Socket 知识总结

    应用层:1.用户接口.应用程序:2.Application典型设备:网关:3.典型协议.标准和应用:TELNET.FTP.HTTP 表示层:1.数据表示.压缩和加密presentation2.典型设备 ...

  7. iOS上架的整体流程和建议

    App Store上架指的是iOS应用从提交申请到上线的整个过程,它的目的是让应用展示在App Store上获取流量.用户. 一.iOS上架的整体流程 1.申请开发者账号 苹果的开发者账号主要分为三种 ...

  8. .NET Core 获取请求类容(body)

    .Net Core 对于body多次读取,开放了一个参数EnableRewind(),该参数在第一次读取body之前开启,之后body信息可以多次读取:core时代取消了之前的stream.posit ...

  9. Spring——面向切面编程(AOP)详解

    声明:本博客仅仅是一个初学者的学习记录.心得总结,其中肯定有许多错误,不具有参考价值,欢迎大佬指正,谢谢!想和我交流.一起学习.一起进步的朋友可以加我微信Liu__66666666 这是简单学习一遍之 ...

  10. asp.net core IdentityServer4 实现 resource owner password credentials(密码凭证)

    前言 OAuth 2.0默认四种授权模式(GrantType) 授权码模式(authorization_code) 简化模式(implicit) 密码模式(resource owner passwor ...