从零开始创建vue3项目——包含项目初始化、element-plus、eslint、axios、router、pinia、echarts

项目启动

初始化vue3项目

  1. 这里建议先下载pnpm,下载速度更快,如果还没下载可以使用
    npm install -g pnpm
    如果遇到报错问题,如下

可以在命令行输入下面的指令以切换到淘宝镜像源
npm config set registry https://registry.npm.taobao.org

  1. 创建项目
    命令行输入pnpm create vue

根据自己的需要选择安装插件即可

  1. 试运行
    命令行中也有提示,输入

    cd vue-demo
    pnpm install
    pnpm dev

即可运行项目

页面中的都是vue官网链接以及一些提示,感兴趣的可以自己看看

配置Element-plus

ement-plus官网链接

  1. 导入有完整导入和按需导入两种,推荐使用按需导致,减少代码包的大小

    首先安装element-plus
    pnpm install element-plus

    使用按需导入需额外下载插件
    pnpm install -D unplugin-vue-components unplugin-auto-import

  2. 然后修改vite.config.js文件,导入插件

js 复制代码
// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})
  1. 由于element-plus默认是英文,如需修改成中文可以如下操作
html 复制代码
<script setup>
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
</script>

<template>
  <!-- App.vue只需要留一个路由出口 -->
  <el-config-provider :locale="zhCn">
    <router-view></router-view>
  </el-config-provider>
</template>

配置eslint

  1. 刚才初始化vue项目的时候可选配置eslint,如果没有选的在命令行输入
    pnpm install eslint

  2. 下载成功后会在目录中看到 .eslint.cjs 文件,打开文件修改其中内容如下,其中内容也都可以自己按需求更改

js 复制代码
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
  root: true,
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/eslint-config-prettier/skip-formatting'
  ],
  parserOptions: {
    ecmaVersion: 'latest'
  },
  rules: {
    //禁用格式化插件 format on save关闭
    //安装Eslint 并配置保存时自动修复
    'prettier/prettier': [
      'warn',
      {
        singleQuote: true, // 单引号
        semi: false, // 无分号
        printWidth: 80, // 每行宽度至多80字符
        trailingComma: 'none', // 不加对象|数组最后逗号
        endOfLine: 'auto' // 换行符号不限制(win mac 不一致)
      }
    ],
    'vue/multi-word-component-names': [
      'warn',
      {
        ignores: ['index'] // vue组件名称多单词组成(忽略index.vue)
      }
    ],
    'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验
    'no-undef': 'error'
  },
  globals: {
    ElMessage: 'readonly',
    ElMessageBox: 'readonly',
    ElLoading: 'readonly'
  }
}

配置axios

  1. 安装axios
    pnpm install axios

  2. 建议在src目录中新建utils 文件夹,其中新建request.js 文件

    进行如下配置

js 复制代码
import axios from 'axios'

//请求基地址
const baseURL = ''

const instance = axios.create({
  // TODO 1. 基础地址,超时时间
  baseURL,
  timeout: 1000000
})

//响应拦截器
instance.interceptors.response.use(
  (res) => {
    // TODO 3. 处理业务失败
    // TODO 4. 摘取核心响应数据
    if (res.data.code === 0) {
      return res
    }
    //处理业务失败,给错误提示
    ElMessage.error(res.data.message || '服务异常')
    return Promise.reject(res.data)
  },
  (err) => {
    //错误默认情况 => 只给提示就行
    ElMessage.error(err.response.data.message || '服务异常')
    return Promise.reject(err)
  }
)

export default instance
export { baseURL }
  1. 请求基地址和拦截器一定要根据后端实际的接口进行修改哦!

配置router

  1. 同样的,初始化项目时也可选router,没有选的话命令行输入
    pnpm install router

  2. 建议在src目录中新建router 文件夹,其中新建index.js文件

  3. 根据自己实际的目录结构配置哦!

js 复制代码
import { createRouter, createWebHistory } from 'vue-router'
//createRoute用于创建路由示例
//配置history模式
//1. createWebHistory  地址栏不带#
//2. createWebHashHistory   地址栏带#
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      component: () => import('@/views/layout/LayoutContainer.vue'),
      // 默认跳转
      redirect: '/index/UserManagement',
      children: [
        {
          path: '/index/UserManagement',
          component: () => import('@/views/index/UserManagement.vue')
        }
      ]
    }
  ]
})

export default router

配置pinia

  1. 同样的,初始化项目时没有选择pinia的命令行输入
    pnpm install pinia

  2. 建议在src目录中新建stores 文件夹,其中新建index.js 文件,再在stores中新建modules 文件夹,其中新建user.js文件,在index.js中导出pinia实例

  3. index.js进行如下配置,这样配置之后,页面中使用pinia就可以直接在页面中导入这个index.js文件,更加方便

js 复制代码
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(persist)

export default pinia

export * from './modules/user'
  1. user.js中文件进行如下配置
js 复制代码
import { defineStore } from 'pinia'
import { ref } from 'vue'

//本案例为用户模块,可以自己根据需要更改,demoname也根据实际修改
export const useUserStore = defineStore(
  'demoname',
  () => {
    //自定义属性名
    const token = ref('')
    //自定义方法
    const setToken = (newToken) => {
      token.value = newToken
    }
    const removeToken = () => {
      token.value = ''
    }
    //记得return暴露自定义的属性和方法
    return {
      token,
      setToken,
      removeToken
    }
  },
  //持久化
  {
    persist: true
  }
)

配置 echarts

echarts官网

  1. 命令行输入,echarts就无法在项目初始化的时候直接配置了,需要手动配置
    pnpm install echarts

  2. 在main.js中进行配置,即可全局挂载echarts

js 复制代码
import './assets/main.scss'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

import ECharts from 'vue-echarts' // 全局引入ECharts
import 'echarts' // 全局引入echarts
// 挂载ECharts   参数1:vue文件中挂载echarts的名字  参数2:挂载的组件

const app = createApp(App)

app.use(createPinia())
app.use(router)
//echarts
app.component('ECharts', ECharts)

app.mount('#app')
  1. 如果要实现简单的echarts图表,还是前往官网查看

共勉

有不会的多去官网查找看看,大家一起加油学习吧!

相关推荐
她似晚风般温柔7892 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
Jiaberrr3 小时前
前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
前端·javascript·vue.js·微信小程序·uni-app
everyStudy3 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript
城南云小白3 小时前
web基础+http协议+httpd详细配置
前端·网络协议·http
前端小趴菜、3 小时前
Web Worker 简单使用
前端
web_learning_3213 小时前
信息收集常用指令
前端·搜索引擎
Ylucius3 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
tabzzz3 小时前
Webpack 概念速通:从入门到掌握构建工具的精髓
前端·webpack
200不是二百4 小时前
Vuex详解
前端·javascript·vue.js
滔滔不绝tao4 小时前
自动化测试常用函数
前端·css·html5