2024/01/05-vue2 前后端分离

本文介绍了如何在Vue项目中配置ElementUI,安装并使用axios与后端SpringBoot进行交互,同时处理前后端分离、跨域问题,以及在main.js中管理和修改axios配置以适应端口变化。
摘要由CSDN通过智能技术生成

前置准备

        修改node的端口号,如果和后端的端口号一样,后端可能会启动失败

        在vue.config.js中添加框选内容

        使用ui,这里使用都是elementui

npm i element-ui

       完整引入elementui:在 main.js 中写入以下内容(添加备注的那三行是真正要添加的,其余的是main.js本身自带的)

import Vue from 'vue'
import ElementUI from 'element-ui'; //1
import 'element-ui/lib/theme-chalk/index.css';//2
import App from './App.vue'
import router from './router'

Vue.use(ElementUI);//3

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

         安装axios

 npm install axios

        引入axios ,在script中写入以下内容

import ax from 'axios'

 回到idea生成后端代码

        创建springboot项目,配置mybatiesPlus以及其他需要的jar包

//添加在任意地方即可(不要添加到别的标签里面)
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.17</version>
</parent>




//添加在<dependencies>标签内
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>2.7.17</version>
    </dependency>

    <!-- 连接数据库-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>

    <!-- mp-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.3</version>
    </dependency>

    <!-- 自动生成代码-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.5.3</version>
    </dependency>

    <!--模板-->
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
      <version>2.3</version>
    </dependency>

    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
    </dependency>

    <!--lombok-->

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.6</version>
    </dependency>

        创建自动生成类

public class MyTest {
    public static void main(String[] args) {
        //
        FastAutoGenerator.create("jdbc:mysql:///project","root","123456")
                // 全局配置
                .globalConfig((scanner, builder) -> builder
                        .author("瑕光")
                        .outputDir("D:\\IDEA\\IDEA\\IDEA\\File\\test_20240105\\src\\main\\java")
                )
                // 包配置
                .packageConfig(
                        (scanner, builder) ->
                                builder
                                        .parent("org.aaa")
                                        .pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\IDEA\\IDEA\\IDEA\\File\\test_20240105\\src\\main\\resources\\mapper")))
                // 策略配置
                .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
                        .controllerBuilder().enableRestStyle().enableHyphenStyle()
                        .entityBuilder().enableLombok().addTableFills(
                                new Column("create_time", FieldFill.INSERT)
                        ).build())
                /*
                    模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
                   .templateEngine(new BeetlTemplateEngine())
                   .templateEngine(new FreemarkerTemplateEngine())
                 */
                .execute();


// 处理 all 情况

    }

    protected static List<String> getTables(String tables) {
        return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
    }
}

         需要修改的如下图所示

         运行自动生成的类

 

        编辑启动类

@SpringBootApplication
@MapperScan("org.aaa.mapper")
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class);
    }
}

        编写常规配置文件 application.properties ,记得修改数据库的相关配置

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///project?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
#  时间   java.util
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-date-keys-as-timestamps=false
#logging.level.com.baomidou.ant.test.dao=debug
#mybatis-plus my_name   myName
mybatis-plus.configuration.map-underscore-to-camel-case=true
#打印sql语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis-plus.configuration.log-impl=
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
#逻辑删除 删除之前的值是0 之后是1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
mybatis-plus.global-config.db-config.logic-delete-value=1

        编写一个简单的controller

 

        配置跨域

        配置跨域有两种方法

        1.加注解,此方法只有该类可以跨域

        2.配置文件的方式,新建一个类专门用来跨域

@Configuration
public class CrossConfig {
    @Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration corsConfiguration = new CorsConfiguration();
//        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedHeader("*");  // 允许所有的头
        corsConfiguration.addAllowedOrigin("*");   //
        corsConfiguration.addAllowedMethod("*");  // * get  put delete head post
        source.registerCorsConfiguration("/**", corsConfiguration); // 所有的路由都能够进行跨域
        return new CorsFilter(source);
    }

}

        运行启动类

    前后端分离

        引入axios

        到达引入的页面查看

        返回数据即为成功 

        在elementui中找到一个表格,进行修改便可得到

 

        但在开发中我们会写很多页面,所以可以在main.js中进行设置来引用并使用axios

 

        之后将上面页面的axios引入进行一些修改

         如果我们后端的端口号发生变化,那便要修改axios的路径,如果请求多会导致非常麻烦,所以在main.js设置baseURL

        再对上面页面的axios引入进行一些修改

        vue中界面的跳转

this.$router.push("")

push中的即是你要跳转的组件的地址

        嵌套路由,当我们想要实现点击侧边栏使主要内容出现页面的话

        先绑定路由

        先在main中添加<router-view></router-view>

        添加子路由

 

便可实现该功能 

        编写一个当路由不存在时跳转的界面

        先写组件

<template>
	<div>
		<h1>这个路由不存在</h1>
	</div>
</template>

<script>
</script>

<style>
</style>

 配置路由,一定要写在routes的最后面

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值