使用Vite构建项目 安装axios,element-plus,vue-router等配置及

1.安装Vite 

npm init vite@latest

2.创建项目

输入项目名称

3.安装router

npm install vue-router --save




import { createRouter,createWebHashHistory} from 'vue-router';
import Login from '../views/login/login.vue';
 const  routes=[
    {
        path:'/',
        redirect:"/Login"
    },
       {
        path: '/Login',
        name: 'Login',
        component: Login
    }
    ]
const router = createRouter({
    routes,
    history: createWebHashHistory(),
   // history: createWebHistory()
})
router.beforeEach((to, from, next) => {
    if (to.path === "/login" || to.path === "/") {
        next();
    } else {
        let login_sucess = localStorage.getItem('login_sucess');
        if (login_sucess === null || login_sucess === '') {
            ElMessageBox.alert("请重新登录", "title", {
                confirmButtonText: "OK",
                callback: (action: any) => {
                    next('/login');
                },
            })
        } else {
            next();
        }
    }
});
export default router;

4.安装axios

npm install axios -g

npm install qs
然后在 vite-env.d.ts 文件中导入
declare module 'qs'

封装
import axios from 'axios';
import qs from 'qs';
import { ElMessageBox } from "element-plus";
import router from "../router/index"
const BASEURL ='url';
const service = axios.create({
    timeout: 5000,
    baseURL: BASEURL,
})
// http request 拦截器
service.interceptors.request.use(config => {
    // 0. 过滤获取token的请求
    if (config.url === '/api/login/get_verification') {
        return config
    }
    // 获取 token 和 sk
    let token = localStorage.getItem('token') || '';
    let sk = localStorage.getItem('sk') || '';
    // 1. 获取请求参数 row
    // let data = config.data;

    //  let row = data.row 
    let data = config?.data || (config['data'] = []);
    let row = data?.row || (config['data']['row'] = []);
    config.data = qs.stringify(data)
    return config
}, err => {
    return err
})
service.interceptors.response.use(response => {
    //接收返回数据..
    const res = response.data
    const { code, msg } = response.data
    if (code === 0) {
        showMessage(res, 'success')
        return res
    }
    else if (code === -3) {
        showMessage(res, 'error')
        return res
        // 抛出异常
    }
    else if (code === -9998) {   // token认证失败
        showMessageLOGIN(res)
        return Promise.reject(msg)  // 抛出异常
    } else {
        showMessage(res, 'error')
        return Promise.reject(msg || '服务器异常')
    }
}, err => {
    return err;
})
//封装错误提示信息..
function showMessage(res: any, types: string) {
    if (types == 'error') {
        ElMessage({
            message: res.msg,
            type: 'error',
        })
    } else {
        ElMessage({
            message: res.msg,
            type: 'success',
        })
    }

    // ElMessageBox.alert(res.msg, "舜泰汽车", {
    //     confirmButtonText: "OK",
    // })
}
function showMessageLOGIN(res: any) {
    ElMessageBox.alert(res.msg, "舜泰汽车", {
        confirmButtonText: "OK",
        callback: (action: any) => {
            setTimeout(() => {
                router.push('/login')
            }, 15000)
        },
    })
}
export default service;

调用

import service from "../../request/index"
export function get_data(vin) {
    return service({
        url: "/api/api/get_data",
        method: 'POST',
        data: {
            row: {
                vin:vin,
            }
        }
    
    })
}

5.安装element-plus

npm install element-plus --save

6.安装pinina

npm i pinia

import { defineStore } from 'pinia' //引入pinia
 
//这里官网是单独导出  是可以写成默认导出的  官方的解释为大家一起约定仓库用use打头的单词 固定统一小仓库的名字不易混乱
export const useCounter = defineStore('counter',{
	state: () => {
        return {
			person: {
				name: 'pinia',
				age: 0,
				say: 'woc'
			},
			reason: '我爱前端',
		}
	},
	getters:{
		doubleCounter(state){
			return state.reason="aaa"
		}
	},
    actions:{
		increment(){
			this.person.age++
		},
		//传参
		incrementnum(num){
			this.person.age += num
		}
	}
})


调用

import { useCounter } from '@/store';
const store = useCounter ();

7.main.ts文件

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import locale  from "element-plus/lib/locale/lang/zh-cn"

import { createPinia } from 'pinia'
createApp(App).use(router).use(ElementPlus,{locale}).use(createPinia()).mount('#app')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是搭建 Vue3 项目的步骤: 1. 安装 Node.js 首先,你需要在你的电脑上安装 Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。你可以在 https://nodejs.org/ 上下载并安装 Node.js。 2. 安装 Vue CLI Vue CLI 是一个官方的 Vue.js 项目脚手架,可以帮助你快速搭建一个 Vue 项目。你可以使用以下命令安装 Vue CLI: ``` npm install -g @vue/cli ``` 3. 使用 Vue CLI 创建项目 使用 Vue CLI 创建一个新的 Vue 项目非常简单,只需要执行以下命令: ``` vue create your-project-name ``` 在创建项目的过程中,你需要选择一些选项,例如: - 选择一个预设(你可以选择默认的预设或手动配置) - 选择要使用的插件(例如 TypeScript、Vuex、Vue Router、Axios 等) - 配置项目的名称、描述等信息 在这个过程中,你需要选择 TypeScript、Vuex、Vue Router 和 Axios 插件,并选择手动配置预设。在手动配置预设时,你需要选择 Vue 3 和 Babel 编译器。 4. 安装 Element Plus Element Plus 是一个基于 Vue 3 的 UI 组件库,可以帮助你快速构建界面。你可以使用以下命令安装 Element Plus: ``` npm install element-plus --save ``` 然后,在你的 main.ts 文件中引入 Element Plus: ```typescript import { createApp } from 'vue' import App from './App.vue' import router from './router' import store from './store' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' createApp(App).use(store).use(router).use(ElementPlus).mount('#app') ``` 5. 使用 Sass Sass 是一种 CSS 预处理器,可以帮助你更加方便地书写 CSS。你可以使用以下命令安装 Sass: ``` npm install sass --save-dev ``` 然后,在你的 App.vue 文件中使用 Sass: ```vue <template> <div class="app"> <h1>Hello, world!</h1> </div> </template> <style lang="scss"> .app { color: red; } </style> ``` 6. 配置 Axios Axios 是一个用于发送 HTTP 请求的 JavaScript 库。你可以使用以下命令安装 Axios: ``` npm install axios --save ``` 然后,在你的 main.ts 文件中配置 Axios: ```typescript import axios from 'axios' axios.defaults.baseURL = 'http://localhost:3000/api' axios.defaults.timeout = 5000 axios.interceptors.request.use(config => { // 在发送请求之前做些什么 return config }, error => { // 对请求错误做些什么 return Promise.reject(error) }) axios.interceptors.response.use(response => { // 对响应数据做些什么 return response }, error => { // 对响应错误做些什么 return Promise.reject(error) }) ``` 现在你已经成功搭建了一个 Vue3 项目使用了 TypeScript、Vite、Vuex、Element Plus、Axios、Sass 和 Vue Router。你可以根据你的需要进行进一步的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值