Vue3+Vite4+Naive-UI 项目自动导入API和组件

简介: 在vue项目中如何实现自动导入API和组件

一、Vue3常用API导入

安装依赖

    pnpm i -D unplugin-auto-import

进行Vite配置

文件名:vite.config.ts

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({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ['vue'],
    }),
  ],
})

可能会出现TypeScript-eslint监测不识别的问题

typescript 报错:'ref' is not defined.

解决方案

1、运行项目

pnpm dev

此时,插件unplugin-auto-import会在项目的根目录生成一个文件:auto-imports.d.ts

2、将生成的TypeScript声明文件引入Vite和tsconfig

文件名:vite.config.ts

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({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ['vue'],
      dts: './auto-imports.d.ts', // 此处引入自动生成的声明文件
    }),
  ],
})

文件名:tsconfig.json

"include": [
    "src/**/*.ts",
  "src/**/*.d.ts", 
  "src/**/*.tsx", 
  "src/**/*.vue",
  "./auto-imports.d.ts" 
  ],

此时eslint可能会报错no-unref

需要插件unplugin-auto-import生成对应的.eslintrc-auto-import.json规则文件引入到.eslintrc.cjs中生效。

1、配置vite文件

文件名:vite.config.ts

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({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ['vue'],
      dts: './auto-imports.d.ts', // 此处引入自动生成的声明文件
      eslintrc: {
        enabled: true, // 1、true时生成eslint配置文件,2、生成后改为false,避免重复消耗
      },
    }),
  ],
})

此处设置eslinrc.enabled的值为true,后面运行项目会生成对应的文件。

2、运行项目,以此来生成文件:

pnpm dev

此时在项目的根目录已经生成了文件:.eslintrc-auto-import.json

3、在eslintrc配置文件中引入刚刚自动生成的配置规则

文件名:.eslintrc.cjs

extends: [
    'plugin:json/recommended',
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/prettier',
    './.eslintrc-auto-import.json'
  ],

测试效果

<script setup lang="ts">

const test = ref('测试vueAPI')
console.log(test.value)

</script>

这里的sfc页面不需要从vue模块里面单独导出ref来使用,直接使用即可。

浏览器控制台:

 测试vueAPI                                 Test.vue:10

此时浏览器也打印出了对应的值,且没有报错。


二、自动引入NaiveUI组件

安装依赖

pnpm i -D unplugin-vue-components

配置Vite文件

文件名:vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: [
        'vue',
        {
          'naive-ui': [
            'useDialog',
            'useMessage',
            'useNotification',
            'useLoadingBar',
          ],
        },
      ],
      dts: './auto-imports.d.ts',
      eslintrc: {
        enabled: false, // 1、true时生成eslint配置文件,2、生成后改为false,避免重复消耗
      },
    }),
    Components({
      resolvers: [NaiveUiResolver()],
    }),
  ],
})

查看效果

<template>
  <!-- <div class="h-50 bg-pink-500 w-50">111</div> -->
  <n-button type="primary">naive-ui</n-button>
  <n-button type="warning">naive-warning</n-button>
</template>

<script setup lang="ts">

const test = ref('测试vueAPI')
console.log(test.value)

</script>

浏览器查看

在这里插入图片描述

相关文章
|
8月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
686 2
|
11月前
|
开发者 容器
44.[HarmonyOS NEXT RelativeContainer案例一] 掌握组件锚点布局:打造灵活精准的UI定位系统
在HarmonyOS NEXT的UI开发中,精确控制组件位置是构建复杂界面的关键。RelativeContainer作为一种强大的布局容器,通过锚点系统提供了精确定位能力,使开发者能够创建出灵活且精准的UI布局。本教程将详细讲解如何使用RelativeContainer的锚点布局功能,帮助你掌握这一核心技术。
338 4
|
11月前
|
设计模式 缓存 容器
06.HarmonyOS Next UI进阶:Text组件与视觉样式完全指南
在HarmonyOS Next应用开发中,Text组件是最基础也是最常用的UI元素之一。它不仅用于显示文本内容,还可以通过丰富的样式属性实现各种视觉效果。掌握Text组件的样式设置,是构建精美UI界面的基础技能。
490 1
|
11月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
1133 0
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1420 4
|
11月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
706 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
8月前
|
Linux Go iOS开发
IDA 9.2 发布:Golang 改进、新 UI 组件、类型解析等
IDA Pro 9.2 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器
1435 0
|
10月前
|
Web App开发 前端开发 JavaScript
Element UI框架中自定义input组件的placeholder样式。
确保这些样式在你的应用程序CSS文件中定义,且该文件已正确加载到项目中。通过以上方法,可以控制Element UI组件中input的placeholder样式,使其满足特定的设计要求。这些更改都是基于CSS伪元素进行的,因此并不会对DOM结构产生改变,保持了原有结构的简洁和高效。
846 12
|
11月前
|
移动开发 开发者
仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑
仓颉开发语言即将发布一周年,虽已有知名App应用,但教程稀缺且官网文档不够完善。幽蓝君推出系列教程,从零开始系统讲解移动开发。本期介绍常用UI组件:按钮、文本、图片、输入框与搜索框的使用方法及注意事项,帮助开发者快速上手仓颉语言。

热门文章

最新文章