本项目的笔记和资料的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