搭建最新vue3项目

该文详细介绍了如何使用Vite初始化项目,配置VueRouter进行页面路由管理,集成unplugin-auto-import自动导入依赖。接着,文章展示了如何安装并配置Element-plusUI库,以及设置Pinia进行状态管理,并使用持久化插件。此外,还引入了IconPark图标库的安装和使用方法。
摘要由CSDN通过智能技术生成

一、项目搭建

1、创建项目

 npm init @vitejs/app saas 或者npm init vue@latest

2、安装router

2.1 安装

npm install vue-router@4 -S

2.2 配置

在src目录新建router/index.js

import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: HomeView
    },
    {
      path: '/about',
      name: 'about',
      // route level code-splitting
      // this generates a separate chunk (About.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: () => import('../views/AboutView.vue')
    }
  ]
})

export default router

3、unplugin-auto-import插件

3.1 安装

npm i unplugin-auto-import -D

3.2 配置vite.config.js

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import AutoImport from 'unplugin-auto-import/vite'


// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
      vue(),
      //自动配置插件
      AutoImport({
        imports: ['vue','vue-router']
      })
  ],
  resolve: {
    //配置路径别名
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

4、引入Element-plus

网址:https://element-plus.gitee.io/zh-CN/guide/installation.html 

4.1 安装

npm install element-plus --save

npm i unplugin-auto-import -D(自动导入工具,前面三已经安装了)

npm install unplugin-vue-components -D(组件自动导入)

npm install unplugin-icons -D(图标自动导入)

(使用样式:<el-icon><i-ep-Lock/></el-icon>,需要增加i-ep-)

npm install sass sass-loader unplugin-element-plus -D(样式自动导入)

4.2 配置vite.config.js

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

//自动导入工具
import AutoImport from 'unplugin-auto-import/vite'
//Element组件包
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'
//Element css样式
import ElementPlus from 'unplugin-element-plus/vite'


// https://vitejs.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        //自动配置插件
        AutoImport({
            imports: ['vue','vue-router'],
            resolvers: [
                ElementPlusResolver(),
                IconsResolver({
                    prefix: 'Icon'
                })
            ]
        }),
        Components({
            resolvers: [
                ElementPlusResolver(),
                IconsResolver({
                    enabledCollections: ['ep']
                })
            ],
        }),
        Icons({
            autoInstall: true
        }),
        ElementPlus({
            useSource: true
        })
    ],
    resolve: {
        //配置路径别名
        alias: {
          '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    }
})

5、Pinia

5.1 安装Pinia与持久化插件

npm i pinia -D

npm i pinia-plugin-persist --save

5.2 配置

在main.js中配置

import { createApp } from 'vue'


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

import store from './stores/index.js' //这个

const app = createApp(App)


app.use(store)                        //这个
app.use(router)

app.mount('#app')

在stores目录下新建index.js配置

import { createPinia } from 'pinia'
//引入pinia的持久化存储插件
import piniaPluginPersist  from 'pinia-plugin-persist'

const store = createPinia();
//使用持久化存储插件
store.use(piniaPluginPersist)

export default store

6、引入IconPark图标库

6.1 官网

https://iconpark.oceanengine.com/official

6.2 安装依赖

npm i @icon-park/vue-next

6.3 按需引入

在src目录下新增plugins目录,在目录下新建一个IconPark.js文件。

import { Play } from '@icon-park/vue-next'

export function IconPark (app) {
  app.component('Play', Play)
}

在main.js中配置引入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import { IconPark } from '@/plugins/iconPark'  //这个语句
const app = createApp(App)
IconPark(app)  //这个语句
app.use(store).use(router).mount('#app')

6.4 使用方法

// 直接引入
<play theme="multi-color" size="26" :fill="['#000000' ,'#000000' ,'#f8e71c' ,'#f8e71c']" :strokeWidth="3"/>

// 或者使用component引入
<component :is="'like'" :theme="'two-tone'" :fill="['#333', '#2F88FF']" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值