最近想尝试以下vuetify,然后根据chatgpt的引导安装上了,但是谁知道呢,最后打包后的项目(里面什么都没写,只是一个vuetify测试页面)大小已经超过了5mb,然后我找了很多资料,最终学会了怎么按需导入。
1.vuetify3安装
有些博主介绍用下面的指令直接创建vuetify项目:
pnpm create vuetify
但是,我个人觉得没必要这样创建一个vuetify项目,因为它给我们生成的文件太多了,而且我作为一个vue3初学者,有些配置都看不懂,当然你可以尝试一下。
下面在我们现有的vue3项目中安装vuetify
pnpm i vuetify
2.按需导入组件
vuetify官网推荐了一种按需导入的方法,下面是链接:
https://vuetifyjs.com/en/features/treeshaking/#automatic-treeshakinghttps://vuetifyjs.com/en/features/treeshaking/#automatic-treeshaking
这个按需导入的插件叫vite-plugin-vuetify
安装方法:
pnpm i vite-plugin-vuetify -D
然后在vite.config.js中进行配置,非常简单:
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vuetify from 'vite-plugin-vuetify' //vuetify按需导入
// https://vite.dev/config/
export default defineConfig({
plugins: [
vue(),
vuetify({ autoImport: true }) // 如果想按需引入,要写这行代码
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
3.导入vuetify
再src目录下,创建一个plugins文件夹,然后再该文件夹下创建vuetify.js文件:
import { createVuetify } from 'vuetify'
import 'vuetify/styles' //vuetify全局样式文件
const vuetify = createVuetify({
})
export default vuetify
4.在main.js中注册
在main.js中导入vuetiy并注册:
import { createApp } from 'vue'
import App from './App.vue'
import vuetify from "@/plugins/vuetify.js"
const app = createApp(App)
app.use(vuetify)
app.mount('#app')
5.测试
最后我在官网上copy了一段网页布局代码:
<template>
<v-responsive class="border rounded" max-height="300">
<v-app>
<v-navigation-drawer class="bg-black">
<v-list>
<v-list-item title="Navigation drawer"></v-list-item>
</v-list>
</v-navigation-drawer>
<v-app-bar elevation="2" title="App bar"></v-app-bar>
<v-main class="bg-orange h-100">
<v-container>
<h1>Main Content</h1>
</v-container>
</v-main>
</v-app>
</v-responsive>
</template>
效果如下:
6.手动导入
最后说一下手动导入,官方提供了手动导入的方法:
或者直接在组件里面手动导入:
手动导入我没有尝试过,有兴趣的伙伴可以尝试一下!