中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用SpringBoot與vue怎么開發一個項目

發布時間:2020-12-21 14:46:51 來源:億速云 閱讀:317 作者:Leah 欄目:開發技術

使用SpringBoot與vue怎么開發一個項目?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

vue build后的文件部署到springboot目錄

vue打包后,會生成dist目錄

使用SpringBoot與vue怎么開發一個項目

springboot靜態資源目錄如下:

使用SpringBoot與vue怎么開發一個項目

SpringBoot處理靜態資源和頁面,設置如下:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
 	registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
	super.addResourceHandlers(registry);
}

頁面模板設置,如下:

#頁面模板設置
spring.thymeleaf.option=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false

部署方案
dist的index.html 直接放在templates目錄下
dist的css、fonts、img、js 直接放在static目錄下

vue打包后vendor文件過大的優化方案

vue使用vue-cli打包后,vendor就將vue.js其他引用的包一起壓縮打包進去,導致vendor文件超過1M,影響頁面加載速度
本項目使用了vue、vue-router、iview、axios、echarts等
(1)使用vue、vue-router、iview、axios、echarts等cnd引用
在index.html文件中,增加:

<script src="https://unpkg.com/vue@2.5.2/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-router@3.0.1/dist/vue-router.min.js"></script>
<script src="https://unpkg.com/iview@3.4.0/dist/iview.min.js"></script>
<script src="https://unpkg.com/axios@0.18.0/dist/axios.min.js"></script>
<script src="https://unpkg.com/echarts@4.2.1/dist/echarts.min.js"></script>

(2)打包時,排除vue、vue-router、iview、axios、echarts等打包
在webpack.base.conf.js文件中,module.exports={…} 方法中添加

module.exports = {
	...
	externals:{
	  'vue':'Vue',
	  'axios':'axios',
	  'vue-router':'VueRouter',
	  'iview':'iview',
	  'echarts':'echarts',
  },
  ...
}

這里有注意的是:命名問題
比如:vue-router的在https://unpkg.com/vue-router@3.0.1/dist/vue-router.min.js中默認采用VueRouter,所以在import vue-router一定要使用VueRouter,而不能使用其他別名。

vue默認別名是Vue
axios默認別名是axios
vue-router默認別名是VueRouter
iview默認別名是iview
echarts默認別名是echarts

例子:

import Vue from 'vue'
import VueRouter from 'vue-router'
import iview from 'iview'
import echarts from 'echarts'

Vue.use(VueRouter)

export default new VueRouter({
 mode: 'history',
 ...
})

(3)vue-router的路由頁面設置為按需加載

export default new VueRouter({
 mode: 'history',
 routes: [
  //頁面1
  {
   path: '/Page1',
   name: 'page1',
   component: () => import('@/views/Page1.vue')
  },
  //頁面2
  {
   path: '/Page2',
   name: 'page2',
   component: () => import('@/views/Page2.vue')
  }
 ]
 });

(4)重新打包后vendor.js文件就小了,可以小到1k哦

vue-router使用了history模式,vue其實做的是單頁面應用,但是效果看上去是多個不同頁面,問題來了,部署到線上環境后,該如何配置?

百度上有很多處理方案,比如:使用errorPage方式處理,nginx配置等,這些問題比較繁瑣,而且在部署過程中,一堆問題。
經過多次嘗試,發現有一個最簡單方法,Controller直接url路徑配置到index.html即可,而且輕松解決history模式帶來的后端問題,如下:

@ApiOperation(value = "", hidden = true)
@RequestMapping(path = "/Page1")
public String page1() {
  return "index";
}

@ApiOperation(value = "", hidden = true)
@RequestMapping(path = "/Page2")
public String page2() {
  return "index";
}

看完上述內容,你們掌握使用SpringBoot與vue怎么開發一個項目的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浙江省| 金昌市| 吉水县| 岳普湖县| 乃东县| 浪卡子县| 福海县| 中超| 北京市| 屏边| 沙河市| 嘉兴市| 都昌县| 郧西县| 南华县| 宜川县| 莎车县| 岗巴县| 江达县| 天长市| 福州市| 井陉县| 金沙县| 阳西县| 临朐县| 亳州市| 永善县| 巴东县| 化隆| 太原市| 商南县| 普宁市| 阜城县| 勃利县| 楚雄市| 木里| 乌鲁木齐县| 依安县| 万载县| 桂林市| 无棣县|