Vue3自動引入組件與組件庫的方法實例
前言
在做vue3項目中時,每次使用都需要先進行引入,用ts的還好,會有爆紅提示,如果是使用js開發的很多時候都會等到編譯的時候才發現哪裡哪裡又沒有引入,就會很浪費時間,偶然發現一款好用的組件可以幫助我們很好的解決這種問題。
首先下載
安裝
yarn add unplugin-auto-import -D
引入
在vite.config.ts中
因為是插件 所以在我們的plugins下 寫入我們導入的名字
imports
在我們的 AutoImport 下第一個屬性 imports 代表著的就是我們那些文件需要自動導入
我們這裡就寫瞭vue vue-router pinia 在項目中使用的時候就可以不用我們手動導入直接使用瞭
這裡註意我們的imports 是一個數組
dts
第二個屬性就是我們的dts
dts為true就代表著會自動生成一個ts文件可以查看導入的信息。
include
這裡include是可以匹配對應的文件
是一個數組裡面寫匹配的正則
引入
在引入的時候需要引入unplugin-auto-import下的vite
import AutoImport from 'unplugin-auto-import/vite' plugins: [vue(),Vuejsx(), AutoImport({ include: [ /\.[tj]sx?$/, /\.vue$/, /\.vue\?vue/, ], dts: true, imports: ['vue', 'vue-router', 'pinia'] })]
然後在頁面使用
會發現爆紅,這裡是因為在當前頁面沒有引用導致,(這就是這個組件使用ts的缺陷還沒找到解決辦法)不用管它 直接運行項目
運行不會有報錯
發現會在src同級目錄下自動生成一個同級文件 auto-imports.d.ts
打開會發現裡面有我們各種的導入
到這裡我們的引入就完成瞭。
自動引入組件庫
安裝
yarn add unplugin-vue-components -D
下載ant-design測試
npm i –save ant-design-vue
在vite.config.ts中引入
import Components from 'unplugin-vue-components/vite'
在引入import { } from 'unplugin-vue-components/resolvers' ctry加鼠標進入resolvers.d.ts
裡面有各大主流組件庫的名字 找到我們需要引入的組件庫 ant -design(需要配置其他的組件庫可找對應組件庫名)
找到並引入 AntDesignVueResolver
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
首先也需要在plugins中引入我們定義的名字 Components
Components({})
是一個對象
dts
第一個參數跟上面一樣設置為true也是會自動生成一個d.ts的文件
dirs
第二個參數就是dirs就是配置你的目錄,你可以設置src,或者src/componets或者你需要配置的地方的組件讓他自動導入,其他的組件不管
extensions
擴展屬性
['vue', 'jsx', 'tsx', 'ts', 'js'],
resolvers
最後這個resolvers就是我們的包自動導入
將我們上面引入的AntDesignVueResolver導進來進行配置
resolvers: [
AntDesignVueResolver({
})
]
Components({ dts: true, dirs: ['src/components'], extensions: ['vue', 'jsx', 'tsx', 'ts', 'js'], resolvers: [ AntDesignVueResolver({ }) ] })
AntDesignVueResolver
importStyle
就是AntDesignVueResolver第一個參數 可以設置我們的less預處理器
importLess
需要 設置為true開啟
這裡的操作配置就相當於引入的包以less的方式導入,
這裡支持less 就需要將less也在項目中配置
CSS配置less
下載less less-loader
yarn add less less-loader -D
在preprocessorOptions中配置less,因為是主要講自動安裝,這裡配置就不詳細講瞭
css: { // https://cn.vitejs.dev/config/#css-preprocessoroptions preprocessorOptions: { less: { modifyVars: { // 此處也可設置直角、邊框色、字體大小等 'primary-color': '#27ba9b' }, javascriptEnabled: true, lessOptions: { javascriptEnabled: true }, }, }, },
在app.vue中導入一個button
<script setup lang="ts"> const msg = ref<string>(""); </script> <template> <input type="text" v-model="msg" /> {{ msg }} <a-button type="primary">Primary Button</a-button> </template>
運行
自動生成components.d.ts文件
裡面就是組件幫助我們自動創建的,這裡創建的子組件也不需要引入即可使用
可以發現我們的HellowWord沒有引入也可以在頁面中使用,就是因為在components.d.ts中已經自動導入瞭。
看到這裡有沒有馬上在項目中使用的想法呢?
好啦,到這裡我們的Vue3自動引入組件,組件庫就完成瞭。
最後附上完整代碼
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import Vuejsx from '@vitejs/plugin-vue-jsx' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers' // https://vitejs.dev/config/ export default defineConfig({ server:{ open:true, port:8080, host:'localhost', headers: { 'Access-Control-Allow-Origin':'*', }, // 配置代理 }, css: { // https://cn.vitejs.dev/config/#css-preprocessoroptions preprocessorOptions: { less: { modifyVars: { // 此處也可設置直角、邊框色、字體大小等 'primary-color': '#27ba9b' }, javascriptEnabled: true, lessOptions: { javascriptEnabled: true }, }, }, }, plugins: [vue(),Vuejsx(), AutoImport({ include: [ /\.[tj]sx?$/, /\.vue$/, /\.vue\?vue/, ], dts: true, imports: ['vue', 'vue-router', 'pinia'] }), Components({ dts: true, dirs: ['src/components'], extensions: ['vue', 'jsx', 'tsx', 'ts', 'js'], resolvers: [ AntDesignVueResolver({ importStyle: 'less', importLess: true }) ] })] })
總結
到此這篇關於Vue3自動引入組件與組件庫的文章就介紹到這瞭,更多相關Vue3自動引入組件 組件庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vue3 組件與API直接使用的方法詳解(無需import)
- element-plus的自動導入和按需導入方式詳解
- Vue3 中的插件和配置推薦大全
- Vite創建Vue3項目及Vue3使用jsx詳解
- element-plus中如何實現按需導入與全局導入