本項目的筆記和資料的Download,請點擊這一句話自行獲取。css
day01-springboot(理論篇) ;day01-springboot(實踐篇)html
day02-springcloud(理論篇一) ;day02-springcloud(理論篇二) ;day02-springcloud(理論篇三) ;day02-springcloud(理論篇四) ;前端
day03-springcloud(Hystix,Feign) ;day03-springcloud(Zuul網關)vue
day04-項目搭建(一) ; day04-項目搭建(二); day04-ES6語法入門java
day05-Vue入門學習node
day06-瞭解vue-router和webpack的使用 ; day06-初識Vuetify框架UI框架和使用域名訪問本地項目 ; day06-使用nginx反向代理並掌握cors解決跨域 mysql
0.學習目標webpack
在開發中,須要打包的東西不止是js、css、html。還有更多的東西要處理,這些插件和加載器若是咱們一 一去添加就會比較麻煩。nginx
幸虧,vue官方提供了一個快速搭建vue項目的腳手架:vue-cligit
使用它能快速的構建一個web工程模板。
官網:https://github.com/vuejs/vue-cli
(已安裝Node.js在cmd窗口下輸入)安裝命令:
npm install -g vue-cli
咱們新建一個module:
打開終端並進入目錄:
用vue-cli命令,快速搭建一個webpack的項目:vue init webpack
前面幾項都走默認或yes
下面這些咱們選no
最後,再選yes,使用 npm安裝
安裝好的項目結構:
入口文件:
須要注意的是,咱們看到有一類後綴名爲.vue的文件,咱們稱爲單文件組件
每個.vue文件,就是一個獨立的vue組件。相似於咱們剛纔寫的loginForm.js和registerForm.js
只不過,咱們在js中編寫 html模板和樣式很是的不友好,並且沒有語法提示和高亮。
而單文件組件中包含三部份內容:
每一個組件都有本身獨立的html、JS、CSS,互不干擾,真正作到可獨立複用。
看看生成的package.json:
咱們執行npm run dev
或者 npm start
均可以啓動項目:
頁面:
後臺項目相對複雜,爲了有利於教學,咱們再也不從0搭建項目,而是直接使用課前資料中給你們準備好的源碼:
咱們解壓縮,放到IDEA的工做目錄中:
而後在Intellij idea中導入新的工程:
選中咱們的工程:
這正是一個用vue-cli構建的webpack工程,是否是與以前見過的結構同樣:
你應該注意到,這裏並無node_modules文件夾,方便給你們下發,已經把依賴都刪除了。不過package.json中依然定義了咱們所需的一切依賴:
咱們只須要打開IDEA的終端窗口,進入項目目錄,輸入:npm install
命令,便可安裝這些依賴。
若是安裝過程出現如下問題:
建議刪除node_modules目錄,從新安裝。
輸入命令:npm run dev
發現默認的端口是9001。訪問:http://localhost:9001
會自動進行跳轉:
Vue雖然會幫咱們進行視圖的渲染,但樣式仍是由咱們本身來完成。後端開發人員通常都喜歡使用一些現成的UI組件,拿來即用,常見的例如:
然而這些UI組件的基因天生與Vue不合,由於他們更多的是利用DOM操做,藉助於jQuery實現,而不是MVVM的思想。
而目前與Vue吻合的UI框架也很是的多,國內比較知名的如:
然而咱們都不用,咱們今天推薦的是一款國外的框架:Vuetify
官方網站:https://vuetifyjs.com/zh-Hans/
有中國的爲何還要用外國的?緣由以下:
這是官網的說明:
基於官方網站的文檔進行學習:
咱們重點關注UI components
便可,裏面有大量的UI組件,咱們要用的時候再查看,不用如今學習,先看下有什麼:
之後用到什麼組件,就來查詢便可。
開始編碼前,咱們先了解下項目的結構。
首先是目錄結構圖:
咱們最主要理清index.html、main.js、App.vue之間的關係:
理一下:
div
,其id爲app
。<vue-router>
<router-view>
,咱們以前講過,vue-router路由後的組件將會在錨點展現。Layout組件是咱們的整個頁面的佈局組件:
一個典型的三塊佈局。包含左,上,中三部分:
裏面使用了Vuetify中的2個組件和一個佈局元素:
v-navigation-drawer
:導航抽屜,主要用於容納應用程序中的頁面的導航連接。

v-toolbar
:工具欄一般是網站導航的主要途徑。能夠與導航抽屜一塊兒很好地工做,動態選擇是否打開導航抽屜,實現可伸縮的側邊欄。
v-content
:並非一個組件,而是標記頁面佈局的元素。能夠根據您指定的app組件的結構動態調整大小,使得您能夠建立高度可定製的組件。
那麼問題來了:v-content
中的內容來自哪裏?
/
/
的下面
咱們如今訪問頁面使用的是:http://localhost:9001
有沒有什麼問題?
實際開發中,會有不一樣的環境:
若是不一樣環境使用不一樣的ip去訪問,可能會出現一些問題。所以,咱們會在各類環境下都使用域名來訪問。
咱們將使用如下域名:
可是最終,咱們但願這些域名指向的仍是咱們本機的某個端口。
那麼,當咱們在瀏覽器輸入一個域名時,瀏覽器是如何找到對應服務的ip和端口的呢?
一個域名必定會被解析爲一個或多個ip。這通常會包含兩步:
本地域名解析
瀏覽器會首先在本機的hosts文件中查找域名映射的IP地址,若是查找到就返回IP ,沒找到則進行域名服務器解析,通常本地解析都會失敗,由於這個文件默認是空的。
樣式:
# My hosts 127.0.0.1 www.xmind.com 127.0.0.1 xmind.com 127.0.0.1 www.xmind.net 127.0.0.1 xmind.net
本地解析失敗,纔會進行域名服務器解析,DNS服務器就是網絡中的一臺計算機,裏面記錄了註冊備案的域名和ip映射關係,通常只要域名是正確的,而且備案經過,必定能找到。
咱們不可能去購買一個域名,所以咱們能夠僞造本地的hosts文件,實現對域名的解析。修改本地的host爲:
127.0.0.1 api.leyou.com 127.0.0.1 manage.leyou.com
這樣就實現了域名的關係映射了。
BlueLife Hosts Editor v1.2 是一款windows操做系統下修改host文件的軟件。
每次在C盤尋找hosts文件並修改是很是麻煩的,給你們推薦一個快捷修改host的工具,在課前資料中能夠找到:
win10系統請先切換到目錄下,給本身的登陸帳戶設定hosts文件的寫入權限
C:\Windows\System32\drivers\etc
初次運行還須要找到Switch Hosts這個應用或桌面快捷方式,右鍵選擇以管理員身份運行。
解壓,運行exe文件,效果:
咱們添加了兩個映射關係(中間用空格隔開):
如今,ping一下域名試試是否暢通:
OK!經過域名訪問:
緣由:咱們配置了項目訪問的路徑,雖然manage.leyou.com映射的ip也是127.0.0.1,可是webpack會驗證host是否符合配置。
在build目錄下webpack.dev.conf.js中取消host驗證:
disableHostCheck: true
從新執行
npm run dev
,刷新瀏覽器便可訪問
針對蘋果版的課堂錄像,咱們的leyou項目的父工程的pom.xml裏添加lombok的依賴座標。而且還須要IDEA安裝lombok的插件。
<?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> <!-- 子模塊天生繼承父工程,可使用父工程全部資源。 子模塊之間天生是沒有任何關係的。 父子工程直接不用創建關係,繼承關係是先天的,不須要手動創建。 平級直接的引用叫依賴,依賴不是先天的,依賴是須要後天創建的。 --> <groupId>com.leyou.parent</groupId> <artifactId>leyou</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>leyou-registry</module> <module>leyou-gateway</module> <module>leyou-item</module> <module>leyou-common</module> </modules> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR4</spring-cloud.version> <!--DAO持久層的依賴版本控制開始--> <mybatis.starter.version>1.3.5</mybatis.starter.version> <mapper.starter.version>2.1.5</mapper.starter.version> <pageHelper.starter.version>1.2.12</pageHelper.starter.version> <mysql.version>5.1.45</mysql.version> <!--DAO持久層的依賴版本控制結束--> <leyou.latest.version>1.0.0-SNAPSHOT</leyou.latest.version> <fastDFS.client.version>1.26.1-RELEASE</fastDFS.client.version> </properties> <dependencyManagement> <dependencies> <!-- springCloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- mybatis啓動器 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.starter.version}</version> </dependency> <!-- 通用Mapper啓動器 --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>${mapper.starter.version}</version> </dependency> <!-- 分頁助手啓動器 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pageHelper.starter.version}</version> </dependency> <!-- mysql驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!--FastDFS客戶端--> <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>${fastDFS.client.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
==================================================
參考資料:
請先安裝IntelliJ IDEA 2019.2.3的插件:File-->Settings-->Plugins-->Vue.js
運行switchhosts修改host文件提示please run SwitchHosts as Administrator
end