最近笔者在做一些vue的开发工作,想要部署一下环境,在网上找了很多,无奈有很多错误的,所以我整合了一下全部的流程,以及自己的一些心得体会,完全从零开始并且包括前后台的教程,欢迎各位指正

1.安装环境

1.1 安装Node.js
在官网进行下载安装即可
http://nodejs.cn/download/

1.2 安装vue-cli
win+R ,输入cmd,打开DOS命令板,输入命令

npm install --global vue-cli

我们可以用命令行npm -vnode -v查看安装的版本号,以此来检测是否安装成功:

1.3 cnpm的安装(可选)
安装完node之后,npm包含的很多依赖包是部署在国外的,在天朝,大家都知道下载速度是超级慢啊。所以我们要安装cnpm,cnpm是淘宝对npm的镜像服务器,这样依赖的包安装起来就快多了。
安装命令为:

npm install -g cnpm --registry=https://registry.npm.taobao.org

1.4 vue-cli的安装(cnpm下再全局安装vue-cli)(可选)

cnpm install -g vue-cli

安装完后,检查是否安装成功,输入vue,出现以下提示表示安装成功。

2.新建vue项目

2.1 创建项目
选择一个目录,cmd中输入(my-project可以改为自定义的名字)

vue create my-project

然后选择第一个,我这边环境Vue 3报错,所以选择了Vue 2,之后等待下载即可

下载完成后输入如下命令启动服务

cd my-project
npm run serve


运行后浏览器输入http://localhost:8080 出现如下页面及运行成功!

3.新建一个登录页面

3.1安装插件
elementui
cmd中输入如下命令

npm i element-ui -S

vue-router

npm install vue-router

axios

npm install axios

qs

npm install qs

等待下载完成
现在我们的vue项目结构大致如下所示:

3.2 编写登录页面
首先在src/components中找到HelloWorld.vue,修改名称为Login.vue,并且需要修改App.vue,main.js等几个文件,如下我已经列出

Login.vue

<template><div class="login_container"><div class="login_box"><!-- 头像 --><div class="avator_box"><img src="../assets/logo.png" alt /></div><!-- 输入表单 --><el-form label-width="0" class="login_form"><!-- name --><el-form-item><el-input v-model="account" placeholder="Account"></el-input></el-form-item><!-- password --><el-form-item><el-input v-model="password" placeholder="Password" show-password></el-input></el-form-item><!--button --><el-form-item class="btns"><el-button type="primary" @click="login">Login</el-button></el-form-item></el-form></div></div>
</template><script>
export default {name: 'Login',data() {return {account: '',password: ''}},methods: {login: function() {const that = thisvar url = 'login'var userData = this.$qs.stringify({'account': this.account, 'password': this.password})console.log(userData)this.$axios.post(url, userData).then(function (response) {if (response.status == 200) {console.log("login success")that.$router.push({ path: '/home'})} }).catch(function (error) {console.log(error);})}}
}
</script><style>
.login_container {background-color: #2b4b6b;height: 100%;
}
.login_box {width: 450px;height: 300px;background-color: #fff;border-radius: 3px;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);
}
.avator_box {height: 130px;width: 130px;border: 1px solid #eee;border-radius: 50%;padding: 10px;box-shadow: 0 0 10px #ddd;position: absolute;left: 50%;transform: translate(-50%, -50%);
}
.avator_box img {height: 100%;width: 100%;border-radius: 50%;background-color: #eee;
}
.login_form{position: absolute;bottom: 0;width: 100%;padding: 0 20px;box-sizing: border-box;
}
.btns{display: flex;justify-content: center;
}
</style>

App.vue

<template><div id="app"><router-view></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;margin-top: 60px;
}
</style>

main.js

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import axios from "axios"
import qs from 'qs'
import router from './router' Vue.use(ElementUI)
Vue.config.productionTip = false
Vue.prototype.$axios = axios
Vue.prototype.$qs = qs
axios.defaults.baseURL = '/api'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'new Vue({router,render: h => h(App),
}).$mount('#app')

随后需要在src目录下新建一个router文件夹,其中新建一个index.js文件,作为路由使用
router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'const Home = () => import("../components/Home")
const Login = () => import("../components/Login")Vue.use(VueRouter)const routes = [{// 重定向path: '/',redirect: '/login'},{path: '/login',component: Login},{path: '/home',component: Home}
]const router = new VueRouter({mode:'history',routes
})export default router

在src/components中新建一个Home.vue 作为登录后跳转的主页

<template><el-container><el-header>Home</el-header><el-container><el-aside width="200px">Aside</el-aside><el-main>Main</el-main></el-container></el-container>
</template>

随后运行项目,最简单的一个登录页面就完成了

4.创建后台接口

笔者这边使用的是Springboot框架,那么简单的写一下创建流程吧。
4.1 创建 Maven 项目
笔者使用的是vscode创建的,使用快捷键(Ctrl+Shift+P)命令窗口,输入 Spring 选择创建 Maven 项目。

之后选择合适的选项进行创建,具体可以参考一下这篇文章
https://blog.csdn.net/zyd573803837/article/details/109263219

创建好的项目如下

随后我们创建一个接口,在src中创建一个LoginController.java

package com.ljc.enddemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class LoginController {@PostMapping("/login")@ResponseBodypublic String index(Model m, @RequestParam("account") String account, @RequestParam("password") String password) throws Exception {return "{\"status\":200}";}
}

随后需要在vue项目中增加跨域处理

4.2 跨域配置
在vue项目的根目录中创建一个vue.config.js文件
vue.config.js

module.exports = {devServer: {open: true,host: 'localhost',port: 8080,https: false,proxy: {// 配置跨域'/api': {target: 'http://localhost:8888/',//后端接口地址ws: true,changOrigin: true,pathRewrite: {'^/api': ''}}}}
}

到此我们的配置就完成了,可以打开服务试着访问了。
点击登录的login按钮,会自动跳转到home页面

【vue部署项目】前后台完全从零指南(超详细)实现简易登录跳转相关推荐

  1. 【软件测试】全网火爆,实战Web项目前后台的bug定位(超详细)

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  2. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  3. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  4. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  5. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  6. project项目导入java路径_Eclipse项目怎么导入IDEA并运行(超详细)

    导入项目 集成环境:intellij idea 2020.1.2 演示系统:dell windows 10 eclipse项目如何导入idea并成功运行,从头到尾步骤,保姆式图解如下: 首先准备好一个 ...

  7. Vue老项目由js转换ts指南

    Vue(2.x)老项目由js转换ts指南 其实在网上有不少关于,vue迁入ts的教程,但是很多并不完善,故做此篇 本项目基于 vue-admin-template进行改造 ,它是有ts版本的,因此本文 ...

  8. 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)

    前言 之前在<从零学ELK系列(十):SpringBoot项目接入ELK升级版(超详细图文教程)>中演示了SpringBoot项目接入ELK请求记录及优化,本次针对于未知异常通过拦截进行记 ...

  9. SpringBoot+Linux操作系统与项目部署(这一篇就够了|超详细)

最新文章

  1. Spark:group by和聚合函数使用
  2. 用notepad++怎样批量添加引号
  3. 计算机原理与基础 —— 原码、反码、补码之间的快速转换和简单运算
  4. 在ASP.NET MVC中进行排序
  5. JAVA线程的生命周期以及5种状态转换
  6. 十九、前端必学Bootstrap美化(下篇)
  7. 把一个人的特点写具体作文_五年级下册第五单元习作把一个人的特点写具体写作指导+范文赏析+图文解读...
  8. SSH 中从后台传值到前台JSP,传不过去问题
  9. 可能是最好理解的二叉树的层序遍历
  10. Java核心类库篇6——IO
  11. 虚拟机CentOS7开机报错:you might must to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot
  12. mysql学习笔记 查找技术 1207 0311
  13. Android 一个漂亮的Android日期和时间选择器:DateTimePicker
  14. Android之Input子系统事件分发流程
  15. Struts2校验器(一)之规格文件
  16. 【牛腩新闻发布系统】--初识牛腩
  17. gis怎么改鼠标滚轮缩放_鼠标滚轮缩放工具-MAPGIS滚轮助手下载V1.3免费版-西西软件下载...
  18. 小白量化《穿云箭集群量化》(1)小白草根超级量化软件介绍
  19. QQ等级图标对应的算法
  20. 操作系统复习——进程同步与通信

热门文章

  1. Cisco思科交换机 入门 - 查看本机IP地址
  2. netcat使用教程
  3. 如何让开关打开_直流高压发生器发生过压过流等故障时应如何处理
  4. 潮水的诺言--张学友
  5. m序列 解扩 matlab,基于MATLABSimulink的扩频通信系统仿真及抗干扰 研究
  6. 计算机科学与技术848考研专业课题型,2021考研大纲:暨南大学848计算机基础综合考试大纲...
  7. uniapp 引入阿里巴巴矢量图(最新)
  8. 麒麟Linux强制修改只读文件,中标麒麟Linux系统文本和文件处理介绍(23页)-原创力文档...
  9. P3机器学习笔记--李宏毅
  10. 百度前端技术学院github地址