SpringBoot+Vue

jdk 1.8

mysql 5.7

vue-cli 安装

npm install -g @vue-cli

npm 设置淘宝镜像加速

npm config set registry https://registry.npm.taobao.org

创建vue项目 vue create 项目名

运行

cd  项目目录npm run serve

安装elementui

npm i element-ui -S

day 01-Vue项目初始化

HelloView.vue

<template><!-- <div class="home"><h1>{{msg}}</h1><el-button type="danger">{{msg}}</el-button><img alt="Vue logo" src="../assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/></div> --><el-container style="100vh"><el-aside width="sideWidth +'px'" style="background-color: rgb(238, 241, 246);"><el-menu :default-openeds="['1', '3']" style="min-height: 100%; overflow: hidden;" :collapse="isCollapse"background-color="rgb(48,65,86)" text-color="#fff" active-text-color="#ffd04b":collapse-transition="false"class="el-menu"><div style="height: 60px; line-height: 60px; text-align: center"><img src='../assets/logo.png' style="width: 20px; position: relative; top: 5px; margin-right: 5px"/><b style="color: white" v-show = "logoTextShow">后台管理系统</b></div><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span slot="title">导航一</span><!-- <i class="el-icon-message"></i>导航一 --></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="1-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="1-4"><template slot="title">选项4</template><el-menu-item index="1-4-1">选项4-1</el-menu-item></el-submenu></el-submenu><el-submenu index="2"><template slot="title"><i class="el-icon-menu"></i><span slot="title">导航二</span><!--     <i class="el-icon-menu"></i>导航二 --></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="2-1">选项1</el-menu-item><el-menu-item index="2-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="2-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="2-4"><template slot="title">选项4</template><el-menu-item index="2-4-1">选项4-1</el-menu-item></el-submenu></el-submenu><el-submenu index="3"><template slot="title"><i class="el-icon-document"></i><span slot="title">导航三</span><!-- <i class="el-icon-setting"></i>导航三 --></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="3-1">选项1</el-menu-item><el-menu-item index="3-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="3-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="3-4"><template slot="title">选项4</template><el-menu-item index="3-4-1">选项4-1</el-menu-item></el-submenu></el-submenu></el-menu></el-aside><el-container><el-headerstyle="text-align:left;  font-size: 12px; border-bottom: 1px solid #ccc; line-height: 60px; display: flex"><div style="flex: 1; font-size: 18px"><span :class="collapseBtnClass" style="cursor: pointer;" @click="collapse()"></span></div><el-dropdown style="width: 70px; cursor: pointer;"><span>王小虎</span><i class="el-icon-arrow-down" style="margin-left: 5px"></i><el-dropdown-menu slot="dropdown"><el-dropdown-item>个人信息</el-dropdown-item><el-dropdown-item>退出</el-dropdown-item></el-dropdown-menu></el-dropdown></el-header><el-main><div style="margin-bottom: 30px"><el-breadcrumb separator="/"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item><el-breadcrumb-item>用户管理</el-breadcrumb-item></el-breadcrumb></div><div style=" margin: 10px 0; display: flex"><el-input style="width: 200px;" placeholder="请输入姓名" suffix-icon="el-icon-user"></el-input><el-input style="width: 200px;" placeholder="请输入邮箱" suffix-icon="el-icon-message"></el-input><el-input style="width: 200px;" placeholder="请输入地址" suffix-icon="el-icon-position"></el-input><el-button class="ml-5" type="primary">搜索</el-button></div><div style=" margin: 10px 0; display: flex"><el-button type="primary">新增<i class="el-icon-circle-plus-outline"/></el-button><el-button type="danger">批量删除<i class="el-icon-delete"/></el-button><el-button type="primary">导入<i class="el-icon-bottom"/></el-button><el-button type="primary">导出<i class="el-icon-top"/></el-button></div><el-table :data="tableData" border stripe :header-cell-class-name="headerBg"><el-table-column prop="date" label="日期" width="140"></el-table-column><el-table-column prop="name" label="姓名" width="120"></el-table-column><el-table-column prop="address" label="地址"></el-table-column><el-table-column label="操作"  width="200" align="center"><template slot-scope="scope"><el-button type="success">编辑<i class="el-icon-edit"/></el-button><el-button type="danger">删除<i class="el-icon-delete"/></el-button></template></el-table-column></el-table><div style="padding: 10px 0;"><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage4":page-sizes="[5, 10, 15, 20]":page-size="10"layout="total, sizes, prev, pager, next, jumper":total="20"></el-pagination></div></el-main></el-container></el-container>
</template><script>// @ is an alias to /srcimport HelloWorld from '@/components/HelloWorld.vue'// export default {//   name: 'HomeView',//   components: {//     HelloWorld//   },//   data(){//    return{//           msg: "Hello Vue"//    }//   }// }export default {data() {const item = {date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'};return {tableData: Array(10).fill(item),collapseBtnClass: "el-icon-s-fold",isCollapse: false,sideWidth: 200,logoTextShow: true,headerBg:'headerBg'}},methods: {collapse() {this.isCollapse = !this.isCollapseif (this.isCollapse) {//收缩this.sideWidth = 64;this.collapseBtnClass = 'el-icon-s-unfold'this.logoTextShow = false}else{this.sideWidth = 200;this.collapseBtnClass = 'el-icon-s-fold'this.logoTextShow = true}}},}
</script>
<style>
.headerBg {background: #eee!important;
}
</style>

App.vue

<template><div id="app"><!-- <nav><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></nav> --><router-view/></div>
</template><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;
}nav {padding: 30px;
}nav a {font-weight: bold;color: #2c3e50;
}nav a.router-link-exact-active {color: #42b983;
}
</style>

global.css

*{margin: 0;padding: 0;box-sizing: border-box;
}.ml-5{margin-left: 5px;
}
.mr-5{margin-right: 5px;
}
.pd-10{padding: 10px 0;
}

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import './assets/global.css'Vue.use(ElementUI);new Vue({router,render: h => h(App)
}).$mount('#app')

效果图

day02-SpringBoot项目创建

pom里配置阿里云仓库

<repositories><repository><id>nexus-aliyun</id><name>nexus-aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository>
</repositories><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository>
</pluginRepositories>

application.yml

server:port: 8081
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8&useSSL=falseusername: 用户名password: 密码output:ansi:enabled: ALWAYS
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

Application.java

package com.junchen;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.junchen</groupId><artifactId>management</artifactId><version>0.0.1-SNAPSHOT</version><name>management</name><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build><repositories><repository><id>nexus-aliyun</id><name>nexus-aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></project>

MyBatisPlusConfig.java

package com.junchen.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan("com.junchen.mapper") // 扫描mapper包
public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//分页查询interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//乐观锁interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;}
}

MyMetaObjectHandler.java

package com.junchen.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component
public class MyMetaObjectHandler implements MetaObjectHandler {/*** mp执行添加操作,这个方法执行 添加时候添加默认值*/@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime::now, LocalDateTime.class); // 起始版本 3.3.3(推荐)//版本号,更新时候版本号会增加this.strictInsertFill(metaObject, "version", () -> 1, Integer.class);//逻辑删除 0表示未删除this.strictInsertFill(metaObject, "deleted", () -> 0, Integer.class);}/*** mp执行更新操作,这个方法执行 添加时候更新默认值*/@Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class); // 起始版本 3.3.3(推荐)}
}

MyBatis-Plus代码生成

pom依赖

<!-- 代码生成器 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version>
</dependency>
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version>
</dependency>

SyS_User

CREATE TABLE management.sys_user
(id BIGINT(20) NOT NULL COMMENT '主键ID',username VARCHAR(50) NULL DEFAULT NULL COMMENT '用户名',password VARCHAR(50) NULL DEFAULT NULL COMMENT '密码',salt VARCHAR(50) NULL DEFAULT NULL COMMENT '盐',nickname VARCHAR(50) NULL DEFAULT NULL COMMENT '昵称',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',phone VARCHAR(50) NULL DEFAULT NULL COMMENT '电话',address VARCHAR(255) NULL DEFAULT NULL COMMENT '地址',`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,`version` INT ( 255 ) DEFAULT NULL,`deleted` INT ( 255 ) DEFAULT NULL,    PRIMARY KEY (id)
)ENGINE = INNODB DEFAULT CHARSET = utf8;

生成器代码

package com.junchen.utils;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;import java.util.Collections;/*** mp代码生成器* @author sunjunchen* @since 2022-01-26*/
public class CodeGenerator {public static void main(String[] args) {generate();}private static void generate() {FastAutoGenerator.create("localhost:3306/management?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false", "用户名", "密码").globalConfig(builder -> {builder.author("SunJunchen") // 设置作者
//                            .enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir("C:\\Users\\sunjunchen\\IdeaProjects\\management\\src\\main\\java\\"); // 指定输出目录}).packageConfig(builder -> {builder.parent("com.junchen") // 设置父包名.moduleName(null) // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml, "C:\\Users\\sunjunchen\\IdeaProjects\\management\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径}).strategyConfig(builder -> {builder.entityBuilder().enableLombok();
//                    builder.mapperBuilder().enableMapperAnnotation().build();builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符.enableRestStyle();  // 开启生成@RestController 控制器builder.addInclude("sys_user") // 设置需要生成的表名.addTablePrefix("t_", "sys_"); // 设置过滤表前缀builder.serviceBuilder().formatServiceFileName("%sService");//去掉IService 的I})
//                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

User.java

package com.junchen.entity;import com.baomidou.mybatisplus.annotation.*;import java.io.Serializable;
import java.time.LocalDateTime;import lombok.Data;
import lombok.Getter;
import lombok.Setter;/*** <p>* * </p>** @author SunJunchen* @since 2022-07-21*/
@Getter
@Setter
@TableName("sys_user")
public class User implements Serializable {private static final long serialVersionUID = 1L;/*** 用户id* 分配ID(主键类型为Number(Long和Integer)或String)(since 3.3.0),使用接口IdentifierGenerator的方法     nextId(默认实现类为DefaultIdentifierGenerator雪花算法)*/@TableId(type = IdType.AUTO)private Long id;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 盐*/private String salt;/*** 昵称*/private String nickname;/*** 邮箱*/private String email;/*** 电话*/private String phone;/*** 地址*/private String address;/*** 创建时间* 插入时填充字段*/@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;/*** 更新时间* 插入和更新时填充字段*/@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;/*** 版本* Version乐观锁注解*/@Version@TableField(fill = FieldFill.INSERT)private Integer version;/*** 逻辑删除的标志 0表示未删除 1表示已删除*/@TableLogic@TableField(fill = FieldFill.INSERT)private Integer deleted;}

UserMapper.java

package com.junchen.mapper;import com.junchen.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** <p>*  Mapper 接口* </p>** @author SunJunchen* @since 2022-07-21*/
public interface UserMapper extends BaseMapper<User> {}

UserService.java

package com.junchen.service;import com.junchen.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;/*** <p>*  服务类* </p>** @author SunJunchen* @since 2022-07-21*/
public interface UserService extends IService<User> {}

UserServiceImpl.java

package com.junchen.service.impl;import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.junchen.entity.User;
import com.junchen.mapper.UserMapper;
import com.junchen.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junchen.utils.Md5UUIDSaltUtil;
import org.springframework.stereotype.Service;/*** <p>*  服务实现类* </p>** @author SunJunchen* @since 2022-07-21*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}

加盐

package com.junchen.utils;import org.apache.commons.codec.digest.DigestUtils;import java.util.UUID;public class Md5UUIDSaltUtil {public static String uuid = UUID.randomUUID().toString().replace("-", "");//创建md5对象public static String createMd5Code(String code) {return DigestUtils.md5Hex(code);}//进行密码校验public static boolean checkPassword(String userCode, String dbCode) {if (dbCode.equals(createMd5Code(userCode))) {return true;} else {return false;}}public static String getUUID() {return uuid;}//email + uuidpublic static String getSalt(String email) {String salt =email + uuid.substring(0, 5) ;return salt;}}

day03 User 的 CRUD

UserController

package com.junchen.controller;import com.junchen.entity.User;
import com.junchen.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;/*** <p>* 前端控制器* </p>** @author SunJunchen* @since 2022-07-21*/
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@PostMappingpublic ResponseEntity<Boolean> saveUser(@RequestBody User user) {userService.saveUser(user);return ResponseEntity.status(HttpStatus.CREATED).build();}@PutMappingpublic ResponseEntity<Boolean> updateUser(@RequestBody User user) {userService.updateUser(user);return ResponseEntity.noContent().build();}}

UserService.java

package com.junchen.service;import com.junchen.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;/*** <p>*  服务类* </p>** @author SunJunchen* @since 2022-07-21*/
public interface UserService extends IService<User> {void saveUser(User user);void updateUser(User user);
}

UserServiceImpl.java

package com.junchen.service.impl;import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.junchen.entity.User;
import com.junchen.mapper.UserMapper;
import com.junchen.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junchen.utils.Md5UUIDSaltUtil;
import org.springframework.stereotype.Service;/*** <p>*  服务实现类* </p>** @author SunJunchen* @since 2022-07-21*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Overridepublic void saveUser(User user) {//加盐,并将加过盐的密码 和盐重新存入数据库中String salt = Md5UUIDSaltUtil.getSalt(user.getEmail());String password = Md5UUIDSaltUtil.createMd5Code(user.getPassword()+salt);user.setPassword(password);user.setSalt(salt);boolean saveFlag = this.save(user);if (!saveFlag){throw  new RuntimeException("添加失败");}}@Overridepublic void updateUser(User user) {Long id = user.getId();User user1 = this.lambdaQuery().eq(User::getId, id).one();if (ObjectUtils.isNotEmpty(user1)){this.lambdaUpdate().eq(User::getId,id).update(user);}}
}

SpringBoot+Vue相关推荐

  1. Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)

    源码获取:博客首页 "资源" 里下载! 项目描述:这是一个基于SpringBoot+Vue框架开发的仿小米电子产品售卖商城系统.首先,这是一个前后端分离的项目,代码简洁规范,注释说 ...

  2. 添加数据功能java,SpringBoot+Vue实现数据添加功能

    一.添加代码生成器 用来自动为数据库映射类建立:mapper.service.controller package com.hanmh.utils; import com.baomidou.mybat ...

  3. 使用Gradle整合SpringBoot+Vue.js-开发调试与打包

    为什么80%的码农都做不了架构师?>>>    非常感谢两位作者: kevinz分享的文章<springboot+gradle+vue+webpack 组合使用> 首席卖 ...

  4. Springboot+vue前后端分离考试系统

    作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家  Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-XX-104 指南针考试系统是一个多角色在线 ...

  5. springboot+vue前后端分离实现宿舍管理系统

    ​ 作者主页:编程指南针简介:Java领域优质创作者.CSDN博客专家 Java项目.简历模板.学习资料.面试题库.技术互助文末获取源码​ 项目编号:BS-GX-032 开发技术: 后台:Spring ...

  6. SpringBoot + Vue + nginx项目一起部署

    SpringBoot + Vue + nginx项目一起部署 SpringBoot + Vue 一起部署到 nginx 1.后端项目部署: (1)  Java项目打包上传到 服务器,开启服务 java ...

  7. SpringBoot+Vue视频干货

    视频干货在结尾,不想读文章的小伙伴请到结尾获取地址 前言: 疫情期间,小梁同学收到学校老师的作业安排,作业内容就是用SpringBoot+Vue开发一个实验室助理信息管理系统,完成时间自然是这学期末, ...

  8. 使用Docker部署SpringBoot+Vue博客系统

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 在今年年 ...

  9. 轻松搭建基于 SpringBoot Vue 的 Web 商城应用

    背景介绍 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数 ...

  10. 从0搭建一个Springboot+vue前后端分离项目(一)安装工具,创建项目

    从0搭建一个Springboot+vue前后端分离项目(二)使用idea进行页面搭建+页面搭建 参考学习vue官网文档 https://v3.cn.vuejs.org/guide/installati ...

最新文章

  1. 五年前的转正我没有留下,校招进不了大公司就是失败吗?
  2. 安装python-devel开发包
  3. cisco 路由器监控路由连通性_Cisco-路由器配置DHCP小实验
  4. PMCAFF | 产品经理如何设计敏捷开发流程?
  5. win2008 mysql端口_Win7系统下SqlServer 2008修改IP端口的方法
  6. 事物Spring boot @Transactional
  7. Java多线程系列——深入重入锁ReentrantLock
  8. STM32项目(七) —— 智能仓库管理系统
  9. PAT乙级 1021 个位数统计
  10. Python精通-Python局部变量与全局变量的区别
  11. ios手机游戏 带你体验拉斯维加斯的疯狂
  12. cvs数据格式 gps_CSV、TXT 和 GPX 文件
  13. Http接口开发以及异常调试
  14. python中pop类型_Python基础之基本数据类型
  15. 【算法与数据结构】—— 大数运算
  16. html导入.obj,如何用Babylon.js导入一个.obj模型
  17. ttl低电平接大电阻_FPGA中的上拉下拉电阻以及开漏推挽输出电路
  18. 消化系统疾病病人的护理
  19. Integer类型比较
  20. Java项目:教师资格证报名系统(java+SpringBoot+vue+maven+mysql+elementui)

热门文章

  1. 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习
  2. 软件外包远离“寒冬”
  3. php大文件 readfile,php – Readfile()和大文件
  4. c# 手写TryParse
  5. UBUNTU若干加速方法
  6. 星型结构 和 雪花型结构
  7. 微信跳转ticket生成规则,从浏览器跳转到微信
  8. CMake入门3之 静态链接库和动态链接库
  9. STL典型使用--vector类模板
  10. 综合通用企业人事管理系统的设计与实现