Spring Boot + Vue先後端分離(二)前端Vue啓動流程

 

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

 

本文是Spring Boot + Vue先後端分離 系列的第二篇,瞭解前面的文章有助於更好的理解本文:css


1.Spring Boot + Vue先後端分離(一)前端Vue環境搭建html


 

前言前端

(一).Vue項目結構vue

(二). 啓動流程node

 

上一篇你們都學習到了vue的環境搭建和項目建立,相信對於小夥伴來講都是很easy的,固然建立方式有多種,我比較喜歡使用命令函,還可使用Idea建立,在idea工具中使用命令行也行,這個在這裏就很少說了,有須要的能夠自行百度,也很簡單,咱們今天主要說一下vue前端的項目結構和啓動流程,讓咱們知道咱們在跑起來一個項目後他是怎麼運行的。webpack

 

(一).Vue項目結構web

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

上面是一個我建立的vue項目,併成功運行,讓咱們看看他都有哪些部分組成。spring

咱們能夠經過思惟導圖看一下主要的幾個點。
vue-router

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

上面的圖片中的組成部分我都再也不多說了,看圖的說明就能明白。後端

下面說一下三個主要的文件: index.html,App.vue,main.js

 

# index.html  首頁入口文件

  •  
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>cxzc-vue2</title></head><body><div id="app"></div><!-- built files will be auto injected --></body></html>

解釋:

該文件是一個普通的 html 文件,可是裏面有這樣的一行 <div id="app"></div> ,下面有一行註釋,這樣 構建的文件將會被自動注入,也就是說咱們編寫的其它的內容都將在這個 div 中展現。

 

index.html文件 在 整個項目只有這一個 html 文件,因此是 單頁面應用,當咱們打開這個應用,表面上能夠有不少頁面,實際上它們都只不過在一個 div 中。

 

# App.vue  根組件文件

 

  •  
<template><div id="app"><img src="./assets/logo.png"><router-view/></div></template>
<script>export default {name: 'App'}</script>
<style>#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;}</style>

 

改文件有三部分組成  template,script,style。

這裏也有一個標籤 <div id="app">,但跟 入口文件 index.html 裏的那個是沒有關係的。這個 id=app 只是跟下面的 css樣式 對應。

 

<script>標籤裏的內容即該組件的腳本,也就是 js 代碼,export default 是 ES6 的語法,意思是將這個組件總體導出,以後就可使用 import 導入組件了。大括號裏的內容是這個組件的相關屬性。

 

該文件中最主要的是代碼  <router-view/>,是一個容器,路由視圖,意思是當前路由( URL)指向的內容將顯示在這個容器中。也就是說,其它的組件即便擁有本身的路由(URL,須要在 router 文件夾的 index.js 文件裏定義),表面上是一個單獨的頁面,實際上只是在根組件 App.vue 中。

 

# main.js  路由配置文件

  •  
// The Vue build version to load with the `import` command// (runtime-only or standalone) has been set in webpack.base.conf with an alias.import Vue from 'vue'import App from './App'import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */new Vue({el: '#app',router,components: { App },template: '<App/>'})

解釋:

改文件中上面 import 了幾個模塊,其中 vue 模塊在 node_modules 中,App 即 App.vue 裏定義的組件,router 即 router 文件夾裏定義的路由。

 

Vue.config.productionTip = false ,做用是阻止vue 在啓動時生成生產提示。

 

在這個 js 文件中,咱們建立了一個 Vue 對象(實例),el 屬性提供一個在頁面上已存在的 DOM 元素做爲 Vue 對象的掛載目標,router 表明該對象包含 Vue Router,並使用項目中定義的路由。components 表示該對象包含的 Vue 組件,template 是用一個字符串模板做爲 Vue 實例的標識使用。

 

(二). 啓動流程

 

當咱們建立好一個項目後 在瀏覽器中打開項目。

進入頁面首先加載index.html和main.js文件。、

main.js文件中給id=「app」的div建立一個Vue的實例,該實例中有一個名叫「APP」的組件,該組件經過vue-router將Hello.vue中的模板注入到App.vue的模板中。

index.html文件

  •  
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>cxzc-vue2</title></head><body><div id="app"></div><!-- built files will be auto injected --></body></html>

 

main.js文件

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

App.vue 文件

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

最終到 helloworld.vue中,這裏實現功能界面效果。

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

好的,vue項目的啓動原理到這裏就ok了,後面就能夠和springboot後端框架作先後端分離了,敬請期待下篇。。。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=                                                                              
相關文章
相關標籤/搜索