当前位置:   article > 正文

java高并发方案-前后端分离之VUE_前后分离高并发技术方案

前后分离高并发技术方案

一、搭建vue项目

1、安装vue-cli脚手架工具

npm install -g vue-cli

vue -V查看版本

说明安装成功

2、用vue-cli命令创建项目

 vue init webpack zhouzhiyao

后面会提示一系列问题,我这边是这样回答的

  1. Project description:项目描述
  2. Author:作者
  3. Vue build:打包方式(standalone和runtime),按回车选择默认的就好
  4. Install vue-router?:是否安装路由?肯定是需要用到的,按 y 回车
  5. Use ESLint to lint your code?:是否启用eslint代码检测规则?目前不需要,按 n 回车
  6. Setup unit tests with Karma + Mocha?:是否进行单元测试?目前不需要,按 n 回车
  7. Setup e2e tests with Nightwatch?:是否进行端对端测试?目前不需要,按 n 回车

进入项目目录,启动npm run dev

 然后http://localhost:8080访问

3、项目结构

4、创建自己的组件

我这边在comments目录下创建了一个shop.vue

  1. <template>
  2. <button v-on:click="qianggou()">秒杀</button>
  3. </template>
  4. <script>
  5. import Vue from 'vue'
  6. import axios from 'axios'
  7. import { get, post } from "@/service/ajax";
  8. Vue.prototype.$axios = axios
  9. Vue.config.productionTip = false
  10. //axios.defaults.baseURL = 'http://127.0.0.1:8081' //关键代码
  11. Vue.config.productionTip = false
  12. export default {
  13. name: 'shop',
  14. data () {
  15. return {
  16. user: {"userId":1001,"name":"zhouzhiyao"}
  17. }
  18. },
  19. methods:{
  20. qianggou: function(){
  21. console.info('请求参数:{}',this.user);
  22. /* axios.post(`/api/miaosha`,this.user)
  23. .then(res=>{
  24. console.log('res=>',res);
  25. this.$alert('秒杀成功',{dangerouslyUseHTMLString:true})
  26. }) */
  27. post("/api/miaosha", this.user);
  28. }
  29. }
  30. }
  31. </script>
  32. <!-- Add "scoped" attribute to limit CSS to this component only -->
  33. <style scoped>
  34. h1, h2 {
  35. font-weight: normal;
  36. }
  37. ul {
  38. list-style-type: none;
  39. padding: 0;
  40. }
  41. li {
  42. display: inline-block;
  43. margin: 0 10px;
  44. }
  45. a {
  46. color: #42b983;
  47. }
  48. </style>

5、修改router下的index.js

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import HelloWorld from '@/components/HelloWorld'
  4. import shop from '@/components/shop'
  5. Vue.use(Router)
  6. export default new Router({
  7. routes: [
  8. {
  9. path: '/',
  10. name: 'shop',
  11. component: shop
  12. },
  13. {
  14. path: '/shop',
  15. name: 'shop',
  16. component: shop
  17. }
  18. ]
  19. })

6、src新增service目录

添加ajax.js文件

  1. import axios from "axios";
  2. let router = import("@/router");
  3. axios.defaults.baseURL = "/api";
  4. axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
  5. axios.defaults.headers["X-Requested-With"] = "XMLHttpRequest";
  6. axios.defaults.headers["Cache-Control"] = "no-cache";
  7. axios.defaults.headers["pragma"] = "no-cache";
  8. export function post(url, data, otherConfig) {
  9. return axios.post(url, data, otherConfig);
  10. }
  11. export function get(url, data, otherConfig) {
  12. return axios.get(url, { params: data, ...otherConfig });
  13. }

axios.defaults.baseURL = "/api",这行代码很重要,设置代理时用到 

7、初始化axios组件

命令:

npm install axios --save-dev

8、配置代理(解决跨域问题)

在config目录下修改index.js

  1. proxyTable: {
  2. '/api': {
  3. target: 'http://127.0.0.1:8081',//设置调用的接口域名和端口号(默认端口号80
  4. changeOrigin: true,
  5. pathRewrite: {'^/api': '' }
  6. //这里理解成用‘/api’代替target里面的地址,
  7. //后面组件中我们掉接口时直接用api代替
  8. //比如我要调用'http://40.00.100.100:3002/user/add',
  9. //直接写‘/api/user/add’即可
  10. }
  11. }

重新启动:

npm run dev

访问localhost:8080/shop,点击秒杀按钮

后台日志:

访问成功

代码:https://codechina.csdn.net/wwwzhouzy/zhouzhiyao

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/146590
推荐阅读
相关标签
  

闽ICP备14008679号