1. 关于路由说明
1.1 路由嵌套规则
说明: 采用children属性实现路由嵌套
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>路由入门案例</title>
</head>
<body>
<div id="app">
<!-- 1.定义路由 -->
<router-link to="/user">用户</router-link>
<router-link to="/dog">狗狗</router-link>
<!-- 路由占位符A -->
<router-view></router-view>
</div>
<!-- 定义模版标签 -->
<template id="userTem">
<div>
<h1>定义用户组件</h1>
</div>
</template>
<template id="dogTem">
<div>
<h1>定义宠物组件</h1>
<!-- 准备2个组件 -->
<router-link to="/samo">萨摩耶</router-link>
<router-link to="/bite">比特犬</router-link>
<!-- 定义路由占位符B -->
<router-view></router-view>
</div>
</template>
<template id="samoTem">
<div>
<h3>白色的狗狗</h3>
</div>
</template>
<template id="biteTem">
<div>
<h3>一只凶猛的狗</h3>
</div>
</template>
<script src="../js/vue.js"></script>
<script src="../js/vue-router.js"></script>
<script>
let userCom = {
template: "#userTem"
}
let dogCom = {
template: "#dogTem"
}
let samoCom = {
template: "#samoTem"
}
let biteCom = {
template: "#biteTem"
}
/* 路由展现问题说明:
如果需要进行路由的嵌套 需要采用children
子级的路由会在当前的路由占位符中进行展现
*/
//定义路由对象
let router = new VueRouter({
routes: [
{path: "/user", component: userCom},
{path: "/dog", component: dogCom, children:[
{path: "/samo", component: samoCom},
{path: "/bite", component: biteCom}
]}
]
})
//需要vue对象 进行挂载
const app = new Vue({
el: "#app",
//vue对象挂载路由
router: router
})
</script>
</body>
</html>
实现父子关系的嵌套结构:
2. 京淘项目搭建
2.1 京淘项目后台搭建
2.1.1 创建项目
2.1.2 导入pom.xml文件
<!--1.parent标签 2.依赖信息 3.build插件-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<!--跳过测试类打包-->
<skipTests>true</skipTests>
</properties>
<!--原则: 按需导入 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<!--springboot启动项(器)在包的内部SpringBoot
已经完成了项目的"整合"(配置) 用户拿来就用
web导入SpringMVC
-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--添加lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--导入MP包之后,删除原有的Mybatis的包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</build>
2.1.3 后台代码结构
说明: 根据码云中的代码结构完成 项目构建
2.1.4 代码测试
2.1.5 后台启动项配置
1.选择 edit config…
2.2 京淘前端搭建
2.2.1 node.js安装
安装成功之后效果:
2.2.2 安装VUE 客户端程序
npm是node 安装软件/环境的工具.
配置淘宝镜像: 1).npm install -g cnpm --registry=https://registry.npm.taobao.org
安装VUE客户端: 命令: npm install -g @vue/cli --force
安装成功后的效果:
2.2.3 导入前端项目
1). 找到前端项目文件
2).导入前端项目
3. 编辑路径 编辑成功之后,导入项目即可
4.项目运行
引入项目之后,启动服务.
5. 终止程序.
2.3 手动安装脚手架
2.3.1 注意事项
如果通过鼠标点击DOS命令窗口, 则DOS命令窗口可能出于锁定的状态. 通过ctrl+c的形式 解除锁定
报错说明: 只剩一个报错信息
1.则关闭客户端重启.
2.重新导入src文件
3.如果上述的操作还不能解决
3.1 直接导入我的项目 jtadmin
3.2 将上述的操作 重复执行
关闭校验: 将原来的true 改为false
2.4 关于脚手架框架说明
2.4.1 打开项目
说明由于脚手架其中需要编辑HTML/CSS/JS 所以需要利用Hbuilder进行打开.
1).查看项目位置
2. 利用hubilder软件打开.即可
2.4.2 什么是脚手架
原来写前端代码时 需要自己手动维护html/css/js. 并且如果文件如果很多 缺乏一种统一的方式进行管理.
可以向后端代码一样Controller/Service/Mapper 将代码进行分层管理. 前端仿照后端 开发了一个脚手架项目结构.
2.4.3 脚手架结构分析
- 代码结构
2.4.4 正确理解.vue文件
知识复习:
1. 组件 HTML/CSS/JS 这些都可以封装到组件中.
2. ** 重点:在脚手架中 xxx.vue 代表一个组件 **
2.4.5 理解main.js
总结: main.js作用
1.导入整个项目中所用到的js.
2.实例化VUE对象
3.通过实例化的VUE对象渲染程序.
2.4.5.1. 引入组件/插件/JS
//import表示导入规则 导入vue.js 并且命名为Vue
import Vue from 'vue'
import App from './App.vue'
//导入路由.js
import router from './router'
import './plugins/element.js'
import './assets/css/global.css'
import './assets/ali-icon/iconfont.css'
/* 导入富文本编辑器 */
import VueQuillEditor from 'vue-quill-editor'
/* 导入富文本编辑器对应的样式 */
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
2.4.5.2 环境设定
/* 导入axios js */
import axios from 'axios'
/* 设定axios的请求根目录 设定服务器请求网址 */
axios.defaults.baseURL = 'http://localhost:8091/'
/*方便其他JS调用Axios,则将变量定义为全局变量
Vue.prototype:定义全局变量 命名为: $http
*/
Vue.prototype.$http = axios
Vue.config.productionTip = false
2.4.5.3 初始化VUE对象
- 传统的VUE对象的创建方式
//需要vue对象 进行挂载
const app = new Vue({
//通过el 指定VUE对象渲染元素的区域.
el: "#app",
//vue对象挂载路由
//router: router
//如果key=value 则使用key代替
router
})
- 脚手架中的写法:
1.引入 组件
import App from './App.vue'
2.定义默认DIV
<template>
<div id="app">
<!-- 添加路由占位符-->
<router-view></router-view>
</div>
</template>
//3. 找到指定的xxx.vue文件, 找到指定的DIV进行渲染.
new Vue({
//引入路由的机制
router,
render: h => h(App)
}).$mount('#app')
2.4.6 关于脚手架路由规范
- 路由占位符位置
说明: 根据用户路由地址之后在该区域展现组件信息.
- 路由规则
引入规范: import router from ‘./router’
- 路由策略
2.4.7 脚手架加载流程
2.4.8 脚手架使用入门案例
需求: 要求用户访问"/elementUI" 访问 ElementUI的组件.
2.4.8.1 定义ElementUI组件
2.4.8.2 定义路由机制
2.4.8.3 访问组件
地址: http://8080/#/elemetUI 路由的拦截的地址!!!
3.总结
- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 前端脚手架运行的一个平台
类比: java程序 -----tomcat服务器. - 脚手架 前端框架 类似于: java中的 spring框架
- VUE.JS 类似于: java代码
- vue-cli 构建脚手架的一个客户端工具 以视图的方式直观的给用户展现.
类比: SqlYog!!!
4. 作业:
- 预习ElementUI 网址: https://element.eleme.cn/#/zh-CN
5 晚自习串讲
5.1 路由导航守卫问题
说明: 目前的课程不需要路由导航守卫 应该将路由中的 index.js 删除路由导航守卫(权限!!!)
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import ElementUI from '../components/ElementUI.vue'
//使用路由机制
Vue.use(VueRouter)
const routes = [
{path: '/', redirect: '/login'},
{path: '/login', component: Login},
{path: '/elementUI', component: ElementUI}
]
//路由导航守卫!!!!!!!
const router = new VueRouter({
routes
})
export default router
5.2 修改前端服务器端口号
启动旁边有个参数的选项