如何快速搭建一个完整的vue2+element-ui的项目-二

news/2024/7/19 15:17:58 标签: vue, js, 前端框架, elementui

技术细节-继续配置

提示:你以为这样就完了吗,其实还有很多东西需要我们自己手写的

例如:

  • element-ui的配置
  • 样式重置配置
  • src使用@的配置
  • elinst配置
  • axios异步请求的二次封转配置
  • 语言国际化配置(这个看需求,我这里就不用配置了)
  • vuex的配置
  • mixins的配置
  • 开发环境的配置

  继续: 

axios异步请求的二次封转配置

 这个是每一个项目中都必须要的:

    首先下载axios 插件

    npm i axios -S

   其实在项目的src目录中新建 utils目录,然后再新建request.js

        src --> utils --> request.js 

代码: 

import Vue from 'vue'
import axios from 'axios'

// 设置超时时长
axios.defaults.timeout = '30000'

// request拦截器
axios.interceptors.request.use((config) => {
  return config
}, (error) => {
  return Promise.reject(error)
})

// responese拦截器
axios.interceptors.response.use((res) => {
  return res.data
}, (error) => {
  Vue.$message.error(error.toString())
  return Promise.reject(error)
})

/**
 * 设置请求header
 * @param {Object} headers
 */
const setHeader = (headers) => {
  for (const key in headers) {
    axios.defaults.headers[key] = headers[key]
  }
}

/**
 * POST请求
 * @param {String} url 地址
 * @param {Object} params 参数
 * @param {Object} headers headers
 */
export const request= (url, params, method,headers = {}) => {
  return new Promise((resolve, reject) => {
    setHeader(headers)
    axios({
        url,
        method,
        data: method == 'post'? params:"",
        params: method =='get'?params:"" 
     }).then((response) => {
      resolve(response.data)
    }).catch((error) => {
      reject(error)
    })
  })
}

/**
 * 文件上传
 * @param {String} url 地址
 * @param {File} file 文件
 */
export const uploadFile= (url, file) => {
  return new Promise((resolve, reject) => {
    const formData = new FormData()
    formData.append('file', file)
    formData.append('currentDate', Date.now())
    axios.post(url, formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    }).then((response) => {
      resolve(response.data)
    }).catch((error) => {
      reject(error)
    })
  })
}
vuex的配置 (项目自动完成了)

这个项目已经配置完成

mixins的配置 (这个主要是放公共的方法)

在src目录中新建mixins文件夹,然后再新建index.js

src  --> mixins  ---> index.js

export default {
  data() {
    return {};
  },
 created(){
 },
  methods: {},
};

在使用mixins的时候要注意了: 他的方法 和 vue的方法 的先后使用问题

  

开发环境的配置 (这里的开发环境是指当前是 开发 ,  生产,  测试)

  配置如下:在项目的根目录新建三个文件

 都写相同的代码:

NAME="开发环境 dev"

VUE_APP_API_URL=http://127.0.0.1   // url为不用环境的地址

小结

提示:跨域我就没有写了,这个百度就有

项目搭建完成之后,希望大家自己启动然后测试一下,有问题的哈,可以在想交流,


http://www.niftyadmin.cn/n/5446626.html

相关文章

c++学习笔记(9)

1. 在 C 中,表达式 (i & 1) 是一个位运算表达式。它使用了按位与操作符 & 来对变量 i 和数字 1 进行二进制的按位与操作。 按位与操作符 & 会比较两个数的二进制表示中的对应位,如果两个相应的二进制位都为 1,则该位的结果值为…

自助棋牌室小程序开发是什么?具体有哪些功能?

随着科技的发展,微信小程序已经成为了我们生活中不可或缺的一部分。它以其便捷、高效的特点,被广泛应用于各个领域,包括餐饮、购物、娱乐等。今天,我们就来了解一下自助棋牌室小程序开发是什么,以及它具有哪些功能。 我…

OPPO案例 | Alluxio在DataAI湖仓一体的实践

分享嘉宾: 付庆午-OPPO数据架构组大数据架构师 在OPPO的实际应用中,我们将自研的Shuttle与Alluxio完美结合,使得整个Shuttle Service的性能得到显著提升,基本上实现了性能翻倍的效果。通过这一优化,我们成功降低了约一…

Spring Boot项目中使用MyBatis连接达梦数据库6

在开发中,使用Spring Boot框架结合MyBatis来操作数据库是一种常见的做法。本篇博客将介绍如何在Spring Boot项目中配置MyBatis来连接达梦数据库6,并提供一个简单的示例供参考。(达梦六不仅分表还分模式.) 我拿SYSTEM表的LPS模式下面Student表做案例。 1.…

每周编辑精选|在线运行 Deepmoney 金融大模型、AI 偏好等多个优质数据集上线

目前,AI 领域对金融模型的研究成果大多是基于公共知识进行训练的,但在实际的金融实践中,这些公共知识对于当前市场的可解释性往往严重不足。一个理想的金融大模型应该能够理解新闻或数据事件,并能够即时地从主观和量化两个角度对事…

乐优商城(九)数据同步RabbitMQ

1. 项目问题分析 现在项目中有三个独立的微服务: 商品微服务:原始数据保存在 MySQL 中,从 MySQL 中增删改查商品数据。搜索微服务:原始数据保存在 ES 的索引库中,从 ES 中查询商品数据。商品详情微服务:做…

Python Flask框架 -- Flask连接MySQL数据库

from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import textapp Flask(__name__)# MySQL所在的主机名或域名 HOSTNAME 127.0.0.1 # MySQL监听的端口号,默认3306 PORT 3306 # 连接MySQL的用户名,用自己的 USERNAME root # 连…

c++基础学习第五天(函数提高,类和对象)

c基础学习第五天(函数提高,类和对象) 文章目录 1、函数提高1.1、函数默认参数1.2、函数占位参数1.3、函数重载1.3.1、函数重载概述1.3.2、函数重载注意事项 2、类和对象2.1、封装2.1.1、封装的意义2.1.2、structi和class区别2.1.3、成员属性设…