vue实战2:

文章目录

  • 一、后台环境初配置
  • 二、前端
    • 1.配置环境步骤
    • 2、解析代码,简化
      • (1)介绍main.js
      • (2)清洁框架
    • 3.创建组件
      • 3.1床架login.vue组件
        • 3.1.1 iconfont的引入
        • 3.1.2 添加样式
        • 3.1.3 校验规则
        • 3.1.4 完成提交和重置
    • 3.2后端(后台开发)
      • 3.2.1、创建user实体
      • 3.2.2、创建登陆,连接前后端
      • 3.2.3:后端连接数据库(编写usermapper) (可以连接数据库页面跳转了)
      • 3.2.4 JSON的引入(这里可以跟数据对接了,正确就跳转,密码错误就登陆失败)
      • 3.2.5(前端)安全退出
      • 3.2.6(前端)安全与路由
    • 3.3 home主页的改造
      • 3.3.1 布局和header
      • 3.3.2 侧边栏的绘制
      • 3.3.3 侧边栏的绘制(后端数据引入)
      • 3.3.4(前端)侧边数据引入以及加入伸缩
      • 3.3.5(前端)主体部分展示(main区域重定向)
      • 3.3.6(前端)侧边导航main区域路由
      • 3.3.7(前端)路径保存
    • 3.4 用户列表组件开发(前端)
      • 3.4.1 面包屑导航
      • 3.4.2 卡片视图区
    • 3.5用户数据获取
      • 3.5.1前台组件
      • 3.5.2(后端,重点)dao层实现,controller实现
      • 3.5.3 前后端展示
      • 3.5.4(前端)用户列表渲染
      • 3.5.5(前端)分页功能
    • 3.6 修改用户状态
      • 3.6.1 后端
      • 3.6.2 前端
    • 3.7 搜索和添加按钮
      • 3.7.1 搜索
      • 3.7.2 添加用户按钮
        • 3.7.2.1 后端
        • 3.7.2.1 前端
    • 3.8 删除按钮
      • 3.8.1 后端
      • 3.8.2 前端
    • 3.9 修改按钮
      • 3.9.1 后端
      • 3.9.2 前端
  • 三、总结遇到的问题

一、后台环境初配置

vue实战2:_第1张图片
vue实战2:_第2张图片
vue实战2:_第3张图片

vue实战2:_第4张图片

# mysql
spring:
  datasource:
    #MySQL配置
    driverClassName:  com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testblog?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo.model

server:
  port: 9000

vue实战2:_第5张图片
vue实战2:_第6张图片

  • 测试端口
  • vue实战2:_第7张图片
    vue实战2:_第8张图片
  • 处理跨域问题
    vue实战2:_第9张图片
package com.urlhouduan.houduan.util;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

//处理跨域
//全局配置
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        /**
         * 1.访问枯井
         * 2.请求来源
         * 3.方法
         * 4.响应时间
         * 5.允许携带
         */
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:8080", "null")
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") //方法
                .maxAge(3600)  //最大响应时间
                .allowCredentials(true);
    }

}

二、前端

1.配置环境步骤

  • 1.到保存地址,创建
vue ui

vue实战2:_第10张图片
vue实战2:_第11张图片
vue实战2:_第12张图片
vue实战2:_第13张图片
vue实战2:_第14张图片
vue实战2:_第15张图片
Choose a version of Vue.js that you want to start the project with:
你想用Vue的那个版本,这个就看大家的需求了(在这里我选择的是Vue2)
Use history mode for router? :就默认让它关闭就可以
Pick a linter / formatter config::代码的书写风格(我们建议选择第三个。 ESLint + Standard config)
Pick additional lint features: 一般不用管(或者两个都选择,看个人情况吧)
点击创建项目
vue实战2:_第16张图片

vue实战2:_第17张图片
vue实战2:_第18张图片
vue实战2:_第19张图片
vue实战2:_第20张图片
vue实战2:_第21张图片
vue实战2:_第22张图片
vue实战2:_第23张图片
vue实战2:_第24张图片
vue实战2:_第25张图片
然后用IDea打开我们的文件夹

2、解析代码,简化

(1)介绍main.js

  • 1.这里是通过组件App.vue把它渲染在了 public下的index.html
  • 2.在确定import ‘./plugins/element.js’ 是否引入即可
    vue实战2:_第26张图片

(2)清洁框架

  • 1.清洁 App.vue,
    一个项目中只有一个id叫做app
    vue实战2:_第27张图片
  • 2.删除src文件下的view文件下的东西,然后再把路由 router对应的indexjs,相对应的引入删除
    在这里插入图片描述
    vue实战2:_第28张图片
  • 3.这出现代表删除完毕
  • vue实战2:_第29张图片
    vue实战2:_第30张图片

3.创建组件

  • 1.创建组件基本框架
  • 2.在router路由文件下的 index引入(配置路由)
  • 3.然后 在App.vue中来渲染,路由过来的所以用这个
    vue实战2:_第31张图片
    vue实战2:_第32张图片

vue实战2:_第33张图片
vue实战2:_第34张图片
vue实战2:_第35张图片

3.1床架login.vue组件

  • 1.首先设计组件,Login.vue,
  • 2.添加全局样式,在assets文件中,创建css文件夹,在创建global.css
  • 3.在 main.js 中添加全局样式 import ‘./assets/css/global.css’
    vue实战2:_第36张图片

vue实战2:_第37张图片
vue实战2:_第38张图片
vue实战2:_第39张图片

3.1.1 iconfont的引入

  • 1.阿里https://www.iconfont.cn/,找到自己用的下载,解压,假如到 assets中
  • 2.在 main.js 中添加全局样式
  • 3.在Login组件中进行修改

vue实战2:_第40张图片
vue实战2:_第41张图片

vue实战2:_第42张图片
vue实战2:_第43张图片
vue实战2:_第44张图片

3.1.2 添加样式

  • 对Login.vue中的 一对style进行设计
    vue实战2:_第45张图片
    在这里插入图片描述
    vue实战2:_第46张图片

vue实战2:_第47张图片

3.1.3 校验规则

Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。

  1. 添加校验属性
    2.编写校验规则
    3.校验元素对应绑定

vue实战2:_第48张图片
vue实战2:_第49张图片

3.1.4 完成提交和重置

1.现在main.js 中引入axios
2.密码框隐藏密码
3.在Login.vue中对按钮进行设计添加@click绑定对应的方法
4.Login.vue中添加对应的方法
5.创建跳转到home网页的home的组件Home.vue
6.记得在路由中router文件夹下的index.js中添加Home.vue

vue实战2:_第50张图片
在这里插入图片描述
vue实战2:_第51张图片
vue实战2:_第52张图片
vue实战2:_第53张图片

vue实战2:_第54张图片
vue实战2:_第55张图片
vue实战2:_第56张图片

3.2后端(后台开发)

1.创建user实体
2.创建userdao
3、编写usermapper

3.2.1、创建user实体

1.要与数据库的顺序相同
2. alt+insert 键,constructor
3. alt+insert 键,constructor,多选可以按着ctrl 选择需要生成的变量
4.alt+insert 键,get
5.alt+insert 键,set
6. 重写tostring
vue实战2:_第57张图片

在这里插入图片描述
vue实战2:_第58张图片
vue实战2:_第59张图片

vue实战2:_第60张图片
vue实战2:_第61张图片

3.2.2、创建登陆,连接前后端

  • 后端,
    vue实战2:_第62张图片
  • 前端
  • vue实战2:_第63张图片

3.2.3:后端连接数据库(编写usermapper) (可以连接数据库页面跳转了)

1.创建dao文件夹,具体见图,在创建UserDao接口
2.再在mapper文件夹下创建UserMapping.xml (里面包括数据库查询语句)
3.在LoginController.java中导入这个UserDao接口
4.不用扫描,直接在UserDao接口上加@Mapper就好了或者是UrljavaApplication。java中扫描这个dao

vue实战2:_第64张图片
vue实战2:_第65张图片

package com.xiao.urljava.dao;

import com.xiao.urljava.bean.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao {
//    用户名,密码
    public User getUserByMassage(@Param("username") String username, @Param("password") String password);
}

vue实战2:_第66张图片







    

vue实战2:_第67张图片
vue实战2:_第68张图片

3.2.4 JSON的引入(这里可以跟数据对接了,正确就跳转,密码错误就登陆失败)

1.首先在pom.xml引入

 		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.23</version>
        </dependency>

vue实战2:_第69张图片

2.在里面修改配置
3.再把前端对应的界面改了
vue实战2:_第70张图片

  • 前端
    vue实战2:_第71张图片

3.2.5(前端)安全退出

  • 1.先设置一个安全退出按钮

1.在前端组件Login的登陆中 存储对象
vue实战2:_第72张图片

3.2.6(前端)安全与路由

2.对跳转到界面的Hone.vue组件,添加一个安全推出的按钮
vue实战2:_第73张图片

  • 2.安全路由(在路由index.js添加)

在这里插入图片描述

// 出现问题的时候使用
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  return originalPush.call(this, location).catch(err => err)
}

3.3 home主页的改造

3.3.1 布局和header

1.开发hone.vue组件
2.
vue实战2:_第74张图片
vue实战2:_第75张图片

3.3.2 侧边栏的绘制

vue实战2:_第76张图片
vue实战2:_第77张图片

vue实战2:_第78张图片

3.3.3 侧边栏的绘制(后端数据引入)

1.第一步创建实体bean文件下的SubMenu.java
2.再创建一个实体MainMenu.java
vue实战2:_第79张图片
vue实战2:_第80张图片

3.再创建dao文件下的里面的接口MenuDao
4.然后在编写他对应的文件,在mapper文件下MenuMapping.xml

vue实战2:_第81张图片

5.在Controller文件夹下创建 MenuController.java
vue实战2:_第82张图片
vue实战2:_第83张图片

3.3.4(前端)侧边数据引入以及加入伸缩

  • 侧边数据引入
    vue实战2:_第84张图片
    vue实战2:_第85张图片

  • 加入伸缩

vue实战2:_第86张图片
vue实战2:_第87张图片
vue实战2:_第88张图片

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="less" scoped>
    //头部样式
    .el-header {
        background-color: #373d41;
        display: flex;  //
        justify-content: space-between;// 左右贴边
        padding-left: 0%;// 左边界
        align-items: center;// 水平
        color: #fff;  //字体纯白
            font-size: 20px;  //字体大小
        > div { //左侧div加布局
        display: flex;
            align-items: center;
        span {
            margin-left: 15px;
            }
            }
    }
    //侧边栏样式
    .el-aside {
        background-color: #333744;
        .el-menu{
            border-right: none;// 对其右边框
        }
    }
    //主体样式
    .el-main {
        background-color: #eaedf1;
    }
    //布局器样式
    .home-container {
        height: 100%;
    }
    //图片样式
    img {
        width: 50px;
        height: 50px;
    }
    //按钮样式
    .toggle-button{
        background-color:#4A5064;
        font-size: 10px;  //字体
        line-height: 24px; //
        color:#fff;
        text-align: center;
        letter-spacing: 0.2em;
        cursor: pointer;// 显示鼠标指针为:小手
    }
    .iconfont{
        margin-right: 10px;
    }
</style>

3.3.5(前端)主体部分展示(main区域重定向)

1。现在要展示的页面这里上路由占位符:
2.首先创建组件Welcome.vue
2.然后再路由中添加index.js中加入Welcome.vue

vue实战2:_第89张图片

vue实战2:_第90张图片
vue实战2:_第91张图片

3.3.6(前端)侧边导航main区域路由

1.加一个router属性
2.创建一个admin对应的组件
3.在路由页面index。js添加这个组件

vue实战2:_第92张图片
vue实战2:_第93张图片
vue实战2:_第94张图片
vue实战2:_第95张图片

3.3.7(前端)路径保存

1.存在的问题,刷新后不在高亮
2.首先给一个默认选择的属性,创造这个属性
vue实战2:_第96张图片
vue实战2:_第97张图片
vue实战2:_第98张图片
vue实战2:_第99张图片

3.4 用户列表组件开发(前端)

3.4.1 面包屑导航

 <!-- 面包屑导航 -->
        <el-breadcrumb separator-class="el-icon-arrow-right">
            <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>权限管理</el-breadcrumb-item>
            <el-breadcrumb-item>用户列表</el-breadcrumb-item>
        </el-breadcrumb>

<style lang="less" scoped>
    /*卡片区的样式*/
    .el-breadcrumb{
        margin-bottom:15px;
        font-size: 17px;
    }

</style>

vue实战2:_第100张图片

3.4.2 卡片视图区

<!-- 卡片视图区 -->
    <el-card>
     </el-card>
        
 //卡片区域
    .el-card{
        box-shadow: 0 1px 1px rgba(0,8,10,0.15) !important;
    }

vue实战2:_第101张图片
vue实战2:_第102张图片

vue实战2:_第103张图片
vue实战2:_第104张图片

3.5用户数据获取

3.5.1前台组件

vue实战2:_第105张图片
vue实战2:_第106张图片

3.5.2(后端,重点)dao层实现,controller实现

1.uerDao的内容添加
vue实战2:_第107张图片
vue实战2:_第108张图片

vue实战2:_第109张图片
vue实战2:_第110张图片

3.5.3 前后端展示

vue实战2:_第111张图片
vue实战2:_第112张图片

3.5.4(前端)用户列表渲染

  • 步骤1
    vue实战2:_第113张图片
    vue实战2:_第114张图片

  • 步骤2:添加功能

  • vue实战2:_第115张图片
    vue实战2:_第116张图片

  • 步骤3:自定义操作

vue实战2:_第117张图片
vue实战2:_第118张图片

3.5.5(前端)分页功能

vue实战2:_第119张图片

vue实战2:_第120张图片
在这里插入图片描述

3.6 修改用户状态

3.6.1 后端

1.先对userDao进行添加
2.在对mapper里面的userMaping进行添加
3.再对UserController进行添加

vue实战2:_第121张图片
vue实战2:_第122张图片

vue实战2:_第123张图片
vue实战2:_第124张图片
vue实战2:_第125张图片

3.6.2 前端

vue实战2:_第126张图片
vue实战2:_第127张图片

3.7 搜索和添加按钮

3.7.1 搜索

1.因为前面数据库已经把搜索内容写好
2.添加前端

  • 后端
    vue实战2:_第128张图片
  • 前端
    vue实战2:_第129张图片
    vue实战2:_第130张图片

3.7.2 添加用户按钮

3.7.2.1 后端

老规矩
1.先userDao再对应的映射mapper\UserMapping.xml,最后com.urlhouduan.houduan.controller.UserController

vue实战2:_第131张图片
vue实战2:_第132张图片
vue实战2:_第133张图片

  • 这里出问题
    vue实战2:_第134张图片

3.7.2.1 前端

vue实战2:_第135张图片

vue实战2:_第136张图片
vue实战2:_第137张图片
vue实战2:_第138张图片
vue实战2:_第139张图片
vue实战2:_第140张图片

3.8 删除按钮

3.8.1 后端

先userDao再对应的映射mapper\UserMapping.xml,最后com.urlhouduan.houduan.controller.UserController
vue实战2:_第141张图片
vue实战2:_第142张图片
vue实战2:_第143张图片

3.8.2 前端

vue实战2:_第144张图片

vue实战2:_第145张图片

3.9 修改按钮

3.9.1 后端

先userDao再对应的映射mapper\UserMapping.xml,最后com.urlhouduan.houduan.controller.UserController

vue实战2:_第146张图片
vue实战2:_第147张图片
vue实战2:_第148张图片
vue实战2:_第149张图片
vue实战2:_第150张图片

3.9.2 前端

vue实战2:_第151张图片
vue实战2:_第152张图片

vue实战2:_第153张图片
vue实战2:_第154张图片

三、总结遇到的问题

1.pom.xml文件中spring-boot-maven-plugin 标红
vue实战2:_第155张图片

你可能感兴趣的:(前端,javascript)