千家信息网

vite怎么创建一个标准vue3+ts+pinia项目

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本文小编为大家详细介绍"vite怎么创建一个标准vue3+ts+pinia项目",内容详细,步骤清晰,细节处理妥当,希望这篇"vite怎么创建一个标准vue3+ts+pinia项目"文章能帮助大家解决
千家信息网最后更新 2025年01月16日vite怎么创建一个标准vue3+ts+pinia项目

本文小编为大家详细介绍"vite怎么创建一个标准vue3+ts+pinia项目",内容详细,步骤清晰,细节处理妥当,希望这篇"vite怎么创建一个标准vue3+ts+pinia项目"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

【01】使用的 Yarn创建项目:

1、执行命令

yarn create vite my-vue-app --template vue-ts

3、cd my-vue-app //进入到项目
4、yarn // 安装依赖
5、yarn dev // 运行项目

vite.config.ts

import path from 'path' // 需要安装 @types/node 并在 tsconfig.node.json的compilerOptions中配置"allowSyntheticDefaultImports": trueimport { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'function _resolve(dir) {  return path.resolve(__dirname, dir);}// https://vitejs.dev/config/export default defineConfig({  plugins: [vue()],  server:{    host: '0.0.0.0', // 监听本地所有ip    port: 3010 // 项目端口  },  resolve:{    alias:{      '@': _resolve('src') // 别名    }  }})

【02】在项目中使用pinia

pinia官网

1. 安装pinia

yarn add pinia

2. 引用到项目

import { createApp } from 'vue'import App from './App.vue'import { createPinia } from 'pinia' // 导入piniaconst app = createApp(App)app.use(createPinia()) // 注册piniaapp.mount('#app')

3. 使用pinia Demo

// ./src/stores/counterStore.tsimport { defineStore } from 'pinia',const useCounterStore = defineStore('counterStore', {  state: () => ({    counter: 0  })})
// setup中使用import { useCounterStore } from '../stores/counterStore'export default {  setup() {    const counterStore = useCounterStore()    return { counterStore }  },  computed: {    tripleCounter() {      return counterStore.counter * 3    },  },}

【03】添加vue-router

1. 安装 router

yarn add vue-router

2. 如何使用

1). 创建router

// src/router/index.tsimport { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";const routes: RouteRecordRaw[] = [  {    path: '/login', // 浏览器访问地址    name: 'Login',    component: () => import(/* webpackChunkName: "login"*/ new URL('../pages/Login/index.vue', import.meta.url).href ),    mate:{}  }]const router = createRouter({  history: createWebHashHistory(),  routes,})export default router

2). 引用到项目

// main.tsimport router from './router'app.use(router)

【04】 安装按需自动导入插件

1. 首先需要安装unplugin-auto-import和unplugin-vue-components两个插件

- unplugin-auto-import: 自动导入api
- unplugin-vue-components: 自动导入使用的组件

yarn add unplugin-auto-import unplugin-vue-components -D

2. 配置 vite.cinfig.ts

import AutoImport from 'unplugin-auto-import/vite'import Components from 'unplugin-vue-components/vite'export default defineConfig({  plugins: [    // 自动导入API方法    AutoImport({      imports: [  // 自动导入API配置        'vue',         'vue-router',        'pinia',      ],      resolvers: [], // custom resolvers      dts: 'src/typings/auto-imports.d.ts', // 导入存放地址    }),    // 自动导入组件    Components({      resolvers: [], // custom resolvers      dts: 'src/typings/components.d.ts',    }),  ]})

【05】 添加element-plus组件库

1. 先安装依赖包

yarn add element-plus

2. 自动导入样式和组件

1). 首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

yarn add unplugin-vue-components unplugin-auto-import -D

2). 配置到vite

// vite.config.tsimport AutoImport from 'unplugin-auto-import/vite'import Components from 'unplugin-vue-components/vite'import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({  plugins: [    // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)    AutoImport({      resolvers: [ElementPlusResolver()],    }),    // 自动导入 Element Plus 组件    Components({      resolvers: [ElementPlusResolver()],    }),  ],})

3. element-plus 图标库

1). 安装依赖包

// 安装包    yarn add @element-plus/icons-vue

2). 自动导入icon组件配置

// 使用unplugin-icons和unplugin-auto-import自动从Iconify导入任何图标集合yarn add unplugin-auto-import unplugin-icons -D
// vite.config.tsimport { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import AutoImport from 'unplugin-auto-import/vite'import Components from 'unplugin-vue-components/vite'import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'// 自动导入element图标import Icons from 'unplugin-icons/vite'import IconsResolver from 'unplugin-icons/resolver'import Inspect from 'vite-plugin-inspect'const path = require('path');function _resolve(dir) {  return path.resolve(__dirname, dir);}// https://vitejs.dev/config/export default defineConfig({  plugins: [    vue(),    // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)    AutoImport({      resolvers: [        ElementPlusResolver(),        // 自动导入图标组件        IconsResolver({          prefix: 'Icon',        }),              ],      dts: path.resolve(_resolve('src'), 'auto-imports.d.ts'),    }),    // 自动导入 Element Plus 组件    Components({      resolvers: [        // 自动注册图标组件        IconsResolver({          enabledCollections: ['ep'],        }),        ElementPlusResolver()],    }),    Icons({      autoInstall: true, // 是否自动加载    }),    Inspect(),  ],  server:{    host: '0.0.0.0', // 监听本地所有ip    port: 3010 // 项目端口  },  resolve:{    alias:{      '@': _resolve('src') // 别名    }  }})

3). 使用方法

【06】添加sass

1. 安装

yarn add sass sass-loader -D

2. 配置sass全局变量

// vite.config.tsexport default {  css:{    preprocessorOptions: {      scss: {        additionalData: "@import './src/assets/css/mixin.scss';",      },    },  }}

【07】 安裝prettier 和 eslint

1.安装依赖项

// 安裝prettier------------------------------------------------------------yarn add prettier eslint-config-prettier eslint-plugin-prettier -D// 安裝eslint-------------------------------------------------yarn add eslint eslint-plugin-vue eslint-config-airbnb-base eslint-plugin-import @typescript-eslint/eslint-plugin @typescript-eslint/parser -D

2.根目录添加.prettierrc.js文件

// .prettierrc.jsexports.modules = {  // 设置强制单引号  singleQuote: true,  autoFix: false,  printWidth: 140,  semi: false,  trailingComma: "none",  arrowParens: "avoid",  endOfLine: "LF",};

3. 根目录添加.eslintrc.js文件

eslint官网

// .eslintrc.jsmodule.exports = {  env: {    browser: true,    es2021: true,  },  extends: [    "plugin:vue/vue3-essential",    "airbnb-base",    "@vue/typescript/recommended",    "@vue/prettier",    "@vue/prettier/@typescript-eslint",  ],  parserOptions: {    ecmaVersion: "latest",    parser: "@typescript-eslint/parser",    sourceType: "module",  },  plugins: ["vue", "@typescript-eslint"],  rules: {    "vue/no-multiple-template-root": "off", // 关闭多根节点的校验vue3可使用多個根節點    quotes: ["error", "single"], // 引号规则为:"单引号",否则一律按照 "error" 处理(你也可以改成warn试一下)  },};

读到这里,这篇"vite怎么创建一个标准vue3+ts+pinia项目"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

项目 组件 配置 图标 标准 引号 插件 文章 样式 内容 函数 别名 地址 文件 方法 根目录 端口 处理 监听 妥当 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器修改ip我的世界 cms数据库是什么意思 戴尔服务器生产日期查询 江门app软件开发好不好 带web管理的dns服务器 网络技术服务优点 武汉盟盟搭网络技术有限公司 闲来麻将软件开发公司电话 网络技术网页设计 数据库数据输出到jsp页面 网络安全即安全数据安全 电商中的网络技术 小米8小米云服务器 数据库隔离级 网络安全法第一课是什么 三级计算机数据库技术多少分过 企业服务器安全性 网络安全检查工作信息 芜湖联想服务器配件推荐商家 网络安全管理机构有哪些 云南互联网科技公司 软件开发企业的所得税有优惠吗 专业技术人员网络技术教育 开发数据库的主要技术难点 山东gps时钟同步数显钟服务器 软件开发系统集成上市公司 国铁集团网络安全工作三同步 石家庄市电子政务网络安全 财政筹措资金保障全市网络安全 太和的网络服务器在哪里
0