【java+vue】前后端项目架构详细流程

前端

1.创建vue项目

需要工具:node、Vscode

1.在磁盘上创建文件(web),并移到Vscode的工作区

2.进入该文件的终端

3.检测node和vue是否正常,若不显示版本号,则自行下载

4.生成vue

        1.执行命令:vue create project

        

        按空格选择,回车则进行下一步

保存本次配置(y)

   取个合适的名字,下次创建vue的时候就可以选择这个名,会默认使用这次的配置

等待下载。。。。。下载完成如下如图所示     

2.启动项目

1.启动项目(要进入到对应的vue项目才可以启动)

2.访问链接

3.终端执行ctrl + c关闭

3.构建页面

3.1.启动原理

1.main.js

这个文件是项目启动的主入口,里面最重要的参数就是router

2./router/index.js

3.2.构建自己的网页

这里使用element插件

1.下载插件

npm i element-ui -S 

2.在main.js文件中引入插件

  1. /*引入如下组件*/

  2. import ElementUI from 'element-ui';

  3. import 'element-ui/lib/theme-chalk/index.css';

  4. Vue.use(ElementUI);

3.在src/views下创建Login.vue和TestView.vue文件

Login.vue

<template>  

    <div style="margin-top:15%; margin-left:40%;  ">  

     

    <el-form ref="form" :model="form" label-width="80px">  

      <el-row>  

        <el-col :span="7"> <el-form-item label="用户名">  

          <el-input v-model="form.name" type="text"></el-input>  

        </el-form-item></el-col>  

      </el-row>  

      <el-row>  

        <el-col :span="7"> <el-form-item label="密码">  

          <el-input v-model="form.password" type="password"></el-input>  

        </el-form-item></el-col>  

      </el-row>  

      <el-row>  

        <el-col  :span="2" :offset="3">  

            <el-button type="primary"  style="width:100%" @click="login" >登录</el-button>  

         </el-col>  

      </el-row>  

    </el-form>  

    </div>  

</template>  

<script>  

import VueRouter from 'vue-router'

  export default {  

    data() {  

      return {  

        form: {  

          name: 'hgf',  

          password:'123456'  

        }  

      }  

    },

 

    methods : {  

        //登录成功了,就修改URL,然后就会进行跳转到指定的页面

        login : function () {  

          this.$router.push({path:'/test'});  

        }  

    }  

  }  

</script>  

<style >  

</style>  

TestView.vue ,点击登录之后我们就跳转到这个页面

<template>

  <el-row>

  <el-button>默认按钮</el-button>

  <el-button type="primary" ">主要按钮</el-button>

  <el-button type="success">成功按钮</el-button>

  <el-button type="info">信息按钮</el-button>

  <el-button type="warning">警告按钮</el-button>

  <el-button type="danger">危险按钮</el-button>

</el-row>

</template>

 4.修改router/index.js文件

5.修改App.vue文件

6.启动项目 npm run serve

如果有以下问题

去vue.config.js文件中添加以下代码,然后重新启动

module.exports = {

  lintOnSave:false,

}

7.访问链接

登录

8.引入axios,发送请求,与后端交互

8.1 在终端下载插件

npm install axios

 

9.在src下创建axiosFun.js和userMG.js文件

axiosFun.js(封装方法)

import axios from 'axios';

const req = (method, url, params) => {

    return axios({

        method: method,

        url: url,

        data: params,

        headers: {

            'Content-Type': 'application/json'

        },

        traditional: true,

    }).then(res => res.data);

};

export {req};

 userMG.js(用户模块的方法)

import { req } from "./axiosFun";

export const testAxios = (params) => req('post', '/api/testAxios', params)

10.修改Login.vue

10.1.引入userMG.js

10.2.修改登录方法

login : function () {

            testAxios(this.form).then(

                res => {

                   if (res.success) {

                        this.$router.push({path : '/test'});

                   }else {

                         this.$message.error(res.msg);

                   }

                }

            )

        }  

11.访问项目,点击登录,它会发起一个请求

至此前端全部写完 

后端

1.创建springboot项目

1.创建

 

 

 2.结果集统一封装

直接去这个地址拷贝代码:【java】使用springMVC优雅的响应数据-CSDN博客

3.创建实体User

 

public class User {
    private String name;
    private String password;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 4.构建控制器

@RestController
@RequestMapping("/api/")
public class TestController {
    private String name = "keep";
    private String password = "123456";

    @PostMapping("/testAxios")
    public R test(@RequestBody User user) {
        if (name.equals(user.getName()) && password.equals(user.getPassword())) {
            return R.status(true);
        }else {
            return R.fail("账号或密码错误");
        }
    }
}

5.由于我们前端项目启动占用了8080端口,所以需要去修改服务器的端口才可以启动

server.port=8081

2.启动项目

我启动项目遇到两个问题

1.springboot版本不支持

解决:在pom修改版本

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.7.13-SNAPSHOT</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

2.选择了java17运行不了

解决:在pom中加入 以下代码

<properties>
   <java.version>8</java.version>
</properties>

 启动并访问我们的接口

至此后端就写完了 

前后端交互

1.前端发送请求的端口是8080,后端接收请求的是8081,它们是不通的,所以要进行反向代理。

vue.config.js文件

proxy: {

      '/api': {

        target: 'http://localhost:8081/',

        changeOrigin: true,

        pathRewrite: { // 路径重写,

          '^/api': '/api' // 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可。

      }

      }

    }

2.重启前端项目,并访问

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/446244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript中的Set和Map:理解与使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

2.JavaWebMySql基础

导语&#xff1a; 一、数据库基本概念 1.什么是数据库 2.关于MySql数据库 二、MySQL的安装与卸载 安装步骤&#xff1a; 卸载步骤&#xff1a; 三、MySQL服务操作 1.服务启动和关闭&#xff1a; 2.登录和退出MySQL&#xff1a; 3.服务自启动&#xff1a; 4.命令行登…

小程序Taro框架 自定义底部Tabbar,处理自定义Tab栏切换卡顿、闪烁

最终效果 最近在用Taro框架开发一个小程序&#xff0c;有一个自定义底部Tabbar的需求&#xff0c;最终效果如下 起步 这页是我第一次接触自定义小程序底部Tabbar&#xff0c;所有第一选择必然是相看官方文档&#xff1a;微信小程序自定义 Tabbar | Taro 文档 &#xff08;如果…

ping多个IP的工具

Ping Tool 项目地址 python开发的IP搜索小工具 ping一个网段所有IP&#xff0c;显示结果查看某个ip地址开放监听的端口配置可保存

IDEA编译安卓源码TVBox

因为电视x受限&#xff0c;无法观看电视直播&#xff0c;为了春晚不受影响&#xff0c;于是网络一顿搜索&#xff0c;试过多个APP&#xff0c;偶尔找到这款开源的TVBox&#xff0c;寒假在家&#xff0c;随便拿来练练手&#xff0c;学习安卓APP的编写&#xff0c;此文做以记录&a…

手拉手RocketMQ基础

消息中间件的对比 消息中间件 ActiveMQ RabbitMQ RocketMQ kafka 开发语言 java erlang java scala 单击吞吐量 万级 万级 10万级 10万级 时效性 ms us ms ms 可用性 高(主从架构) 高(主从架构) 非常高(主从架构) 非常高(主从架构) 消息中间件: activ…

分享软件项目实施方案模板

本项目在实施过程中将遵守做到以下几个方面&#xff1a; 与建设单位共同完成整个系统软件、网络等设计,负责系统的开发、测试、调试、人员培训、系统的试运行和交付&#xff0c;并保证系统质量。负责系统的维护、应用软件的升级和更新。提出对系统硬件设备的相关技术要求。在项…

JDBC的学习记录

JDBC就是使用java语言操作关系型数据库的一套API。 JDBC&#xff08;Java Database Connectivity&#xff09;是Java语言中用于连接和操作数据库的一种标准接口。它提供了一组方法和类&#xff0c;使Java程序能够与各种不同类型的关系型数据库进行交互。 JDBC的主要功能包括建…

PythonWeb

例题一 from flask import Flask app Flask(__name__) app.route(/index) def index():return f<h1>这是首页&#xff01;</h1> def second():return f<h1>这是第二页&#xff01;</h1> if __name__ __name__:app.run(host"0.0.0.0",port…

图腾柱PFC工作原理:一张图

视屏链接&#xff1a; PFC工作原理

SpringCloud--Sentinel使用

一、快速开始 Sentinel 的使用可以分为两个部分&#xff1a; 核心库&#xff08;Java 客户端&#xff09;&#xff1a;不依赖任何框架/库&#xff0c;能够运行于 Java 8 及以上的版本的运行时环境&#xff0c;同时对 Dubbo / Spring Cloud 等框架也有较好的支持。控制台&…

OpenFeign相关配置(超时,重试,HttpClient5,日志)

1.超时控制 默认OpenFeign客户端等待60秒钟&#xff0c;但是服务端处理超过规定时间会导致Feign客户端返回报错。 yml文件对应配置: connectTimeout&#xff1a;连接超时时间 readTimeout:请求处理超时时间 1.yml配置 server:port: 80spring:application:name: cloud-consu…

F - Earn to Advance

解题思路 由于对于一点不知道后面得花费&#xff0c;所以无法决策当前是否要停下赚钱或要停下多久考虑一点&#xff0c;可以由其左上方的所有点到达所以从往前推&#xff0c;得出到的总花费然后考虑从之后不赚钱直接到最终所用次数和剩余钱若存在&#xff0c;在后面点赚钱更优…

面试经典150题 -- 图的广度优先遍历 (总结)

总的链接 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 909 . 蛇梯棋 链接 : . - 力扣&#xff08;LeetCode&#xff09; 题意 &#xff1a; 直接bfs就好了 &#xff0c; 题意难以理解 : class Solution:def snakesA…

mockjs学习

1.前言 最近面试发现之前团队协同合作的项目没有mock数据难以向面试官直接展示&#xff0c;所以迟到得来速学一下mockjs。 参考视频&#xff1a;mockJs 妈妈再也不用担心我没有后端接口啦_哔哩哔哩_bilibili 一开始查阅了一些资料&#xff0c;先是看了下EasyMock&#xff0c…

分享几个Google Chrome谷歌浏览器历史版本下载网站

使用selenium模块的时候&#xff0c;从官网下载的谷歌浏览器版本太高&#xff0c;驱动不支持&#xff0c;所以需要使用历史的谷歌浏览器版本 &#xff0c;这里备份一下以防找不到了。 驱动下载地址&#xff1a;https://registry.npmmirror.com/binary.html?pathchromedriver 文…

Windows C++ 实现远程虚拟打印机(远程共享打印机)

编译错误已经修改完后的工程修改后的下载地址 https://download.csdn.net/download/2403_83063732/88928550 1、下载clawpdf&#xff08;0.8.7版本&#xff09; https://github.com/clawsoftware/clawPDF 2、打开clawpdf工程开始编译C#工程&#xff0c;出现如下错误&#xf…

利用YOLOv5模型进行锥桶识别

目录 1. YOLOv5模型简介 2. 准备数据集 3. 训练模型 4. 模型评估 5. 模型部署与应用 6. 注意事项 在计算机视觉领域&#xff0c;目标检测是一项重要的任务&#xff0c;它可以帮助我们识别图像或视频中的特定物体并进行定位。而YOLOv5是一种高效的目标检测模型&#xff0c…

栈与队列的故事

​​​​​​​ 目录 ​编辑​​​​​​​ 一、栈 1.1栈的概念及结构 1.2栈的实现 1、实现支持动态增长的栈 2、初始化栈 3、入栈 4、出栈 5、获取栈顶元素 6、检测栈是否为空 7、获取栈中有效元素个数 8、销毁栈 9、测试 1.3源码 二、队列 2.1队列的概念及结构…

【AI辅助研发】-开端:未来的编程范式

编程的四种范式 面向机器编程范式 面向机器编程范式是最原始的编程方式&#xff0c;它直接针对计算机硬件进行操作。程序员需要了解计算机的内部结构、指令集和内存管理等细节。在这种范式下&#xff0c;编程的主要目标是编写能够直接控制计算机硬件运行的机器代码。面向机器…