CBG2105-Day-10笔记

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>A级舔狗</h3>
			</div>
		</template>
		
		<template id="biteTem">
			<div>
				<h3>SSS级舔狗</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文件

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </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>

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--springBoot数据库连接  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- 引入数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- 导入Mybatis-Plus jar包 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

    </dependencies>
    <!-- build:SpringBoot项目与Maven整合的插件
         可以通过插件,执行项目的打包/测试/文档生成等操作
         PS:该插件不能省略,省略该插件时 利用命令启动时报错,没有主清单信息
     -->
    <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.2 京淘项目前端搭建

2.2.1 node.js安装

  • List item

安装成功之后的效果
在这里插入图片描述

2.2.2 安装VUE客户端程序

npm是node.js安装软件/环境工具
配置淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org
安装VUE客户端:命令:npm install -g @vue/cli --force
安装成功后的效果:
在这里插入图片描述

2.2.3 导入前端项目

  1. 找到自己磁盘盘中的前端项目
    在这里插入图片描述
  2. 编辑项目路径 编辑成功后导入项目即可
    在这里插入图片描述
  3. 引入成功之后启动服务
    在这里插入图片描述

2.4 关于脚手架框架说明

2.4.1 打开项目

说明由于脚手架其中需要编辑HTML/CSS/JS 所以需要利用Hbuilder进行打开.

  1. 查看项目位置

在这里插入图片描述
2. 利用hubilder软件打开.即可
在这里插入图片描述

2.4.2 什么是脚手架

原来写前端代码时 需要自己手动维护html/css/js. 并且如果文件如果很多 缺乏一种统一的方式进行管理.
可以向后端代码一样Controller/Service/Mapper 将代码进行分层管理. 前端仿照后端 开发了一个脚手架项目结构.

2.4.3 脚手架结构分析

  1. 代码结构
    在这里插入图片描述

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'
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包 */
import axios from 'axios'
/* 设定axios的请求根目录 */
axios.defaults.baseURL = 'http://localhost:8091/'
/* 向vue对象中添加全局对象 以后发送ajax请求使用$http对象 */
Vue.prototype.$http = axios

Vue.config.productionTip = false
2.4.5.3 初始化VUE对象
  1. 传统VUE对象的创建方式
//需要vue对象 进行挂载
const app = new Vue({
	//通过el 指定VUE对象渲染元素的区域.
	el: "#app",
	//vue对象挂载路由
	//router: router
	//如果key=value 则使用key代替
	router
})
  1. 脚手架中的写法
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 关于脚手架路由规范

  1. 路由占位符位置
    说明:根据用户路由地址之后在该区域展现组件信息
    在这里插入图片描述
  2. 路由规则
    引入规范:import VueRouter from ‘vue-router’
    在这里插入图片描述
  3. 路由策略
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

2.4.7 脚手架加载流程

在这里插入图片描述

2.4.8 脚手架入门案例

需求:要求用户访问"/elementUI" 访问 ElementUI的组件

2.4.8.1 定义ElementU 组件

在这里插入图片描述

2.4.8.2 定义路由机制

在这里插入图片描述

2.4.8.3 访问组件

URL:http://8080/#/elemetUI 路由的拦截的地址!!!
在这里插入图片描述

3、总结

  1. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 前端脚手架运行的一个平台
    类比: java程序 -----tomcat服务器.
  2. 脚手架 前端框架 类似于: java中的 spring框架
  3. VUE.JS 类似于: java代码
  4. vue-cli 构建脚手架的一个客户端工具 以视图的方式直观的给用户展现.
    类比: SqlYog!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

直男编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值