1.补充
1.1嵌套路由(补充)
一旦使用了嵌套路由,必须有某个View是不完整的(其内部有某个区域使用了<router-view/>
,是由其它View来负责显示的),这样的View不应该能够被直接访问,所以,通常会配置上redirect
属性,表示“重定向”的意思,一旦访问这个View对应的路径,就会自动跳转到重定向配置的路径上,例如:
const routes = [
{
path: '/sys-admin',
component: () => import('../views/HomeView.vue'),
redirect: '/sys-admin/index', // 重定向
// 其它代码
另外,在使用了嵌套路由时,通常,设计的子级路由中的URL会有共同的前缀,例如:
const routes = [
{
path: '/sys-admin',
component: () => import('../views/HomeView.vue'),
redirect: '/sys-admin/index',
children: [
{
// 以下路径使用了 /sys-admin 作为前缀
path: '/sys-admin/temp/brand/list',
component: () => import('../views/sys-admin/temp/BrandListView.vue')
},
{
// 以下路径使用了 /sys-admin 作为前缀
path: '/sys-admin/temp/brand/add-new',
component: () => import('../views/sys-admin/temp/BrandAddNewView.vue')
},
则,在配置子级路径的path
时,可以不使用/
作为第1个字符,然后,配置值只需要写/sys-admin
右侧的部分,例如:
const routes = [
{
path: '/sys-admin',
component: () => import('../views/HomeView.vue'),
redirect: '/sys-admin/index',
children: [
{
// 实际路径是父级路由的path与当前path的组合:/sys-admin/temp/brand/list
path: 'temp/brand/list',
component: () => import('../views/sys-admin/temp/BrandListView.vue')
},
{
// 实际路径是父级路由的path与当前path的组合:/sys-admin/temp/brand/add-new
path: 'temp/brand/add-new',
component: () => import('../views/sys-admin/temp/BrandAddNewView.vue')
},
2.酷鲨商城(管理商品模块)
此项目是《酷鲨商城》的服务器端管理商品相关数据的项目(至于管理员、用户、订单等,并不在此项目中开发)。
此项目是使用Spring Boot作为基础框架的项目,在后续的使用过程中,将使用到主流的SSM(Spring / Spring MVC / Mybatis)、Spring Security、Spring Validation等框架。
早期流行的是SSH:Spring / Struts 2 / Hibernate。
创建项目的参数:
- Group:
cn.tedu
- Artifact:
csmall-product
- Package Name:
cn.tedu.csmall.product
- Java版本:
1.8
- Spring Boot父项目版本:
2.5.9
- 创建过程中勾选的依赖:无
创建项目完成后,pom.xml
文件的内容为:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本,固定值 -->
<modelVersion>4.0.0</modelVersion>
<!-- 父级项目版本,推荐暂时使用2.5.9 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 当前项目信息 -->
<groupId>cn.tedu</groupId>
<artifactId>csmall-product</artifactId>
<version>0.0.1</version>
<name>jsd2204-csmall-product-teacher</name>
<description>这是酷鲨商城的商品管理服务的项目(学习中……)</description>
<!-- 属性 -->
<properties>
<!-- 使用的Java的版本 -->
<java.version>1.8</java.version>
</properties>
<!-- 当前项目使用的依赖项(框架、工具包) -->
<!-- scope > test:此依赖项的作用范围只是测试,仅能用于src/test下的代码,且不参与编译、打包 -->
<dependencies>
<!-- Spring Boot的基础依赖项 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Spring Boot的测试的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2.1项目的开发流程
推荐学习《软件工程》。
大概的指导思想,开发项目的核心流程:需求分析、可行性分析、总体设计、详细设计等。
在开发实践中,每个用户感受到的功能(例如登录、注册等)都是由项目中的多个组件(例如Controller、Mapper等)来共同完成的,通常,在开发时,首先确定需要开发的数据类型有哪些,例如用户、类别、购物车、订单等,并且,从基础类型开始制定开发顺序,例如需要先开发用户类型的数据的相关功能,才能开发订单数据的相关功能,然后,对于互不直接相关的数据类型,一般先开发简单的,再开发难度略大的,接下来,就应该规划每种数据类型需要实现哪些业务(用户能感受到的功能),以用户数据为例,需要开发的业务可能有:登录、注册、修改密码、查看用户列表、禁用某用户、删除用户……并规划这些业务的开发先后顺序,通常,应该大致遵循增、查、删、改的顺序,例如需要先开发注册,再开发登录……然后&