evanhy / testVue

在线地址

Home Page:https://hu-vue3.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

插件

1、unplugin-auto-import

支持vue, vue-router, vue-i18n, @vueuse/head, @vueuse/core等自动引入

https://github.com/antfu/unplugin-auto-import

https://juejin.cn/post/7162052830054842399

一、效果
// 引入前
import { ref, computed } from 'vue'
const count = ref(0)
const doubled = computed(() => count.value * 2)

//引入后
const count = ref(0)
const doubled = computed(() => count.value * 2)


// 引入前
import { useState } from 'react'
export function Counter() {
  const [count, setCount] = useState(0)
  return <div>{ count }</div>
}

//引入后
export function Counter() {
  const [count, setCount] = useState(0)
  return <div>{ count }</div>
}
二、安装
npm i -D unplugin-auto-import
三、vite.config.js配置
// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig({
  plugins: [
    AutoImport({
      imports: ['vue', 'vue-router', 'vue-i18n', '@vueuse/head', '@vueuse/core'],
      // auto-import.d.ts生成的位置(默认是在根目录) 会在
      dts: 'src/type/auto-import.d.ts',
    })
  ]
})

2、unplugin-vue-components

https://github.com/antfu/unplugin-vue-components

一、安装
npm i unplugin-vue-components -D
二、vite.config.ts配置
// vite.config.ts
import Components from 'unplugin-vue-components/vite'

export default defineConfig({
  plugins: [
    Components({ 
      /* options */ 
      // 自动引入文件的位置
      dts: 'src/type/components.d.ts',
    }),
  ],
})
三、效果

It will automatically turn this

<template>
  <div>
    <HelloWorld msg="Hello Vue 3.0 + Vite" />
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

into this

<template>
  <div>
    <HelloWorld msg="Hello Vue 3.0 + Vite" />
  </div>
</template>

<script>
import HelloWorld from './src/components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>
四、TS

为了获得对自动导入组件的TypeScript支持,Vue 3有一个PR扩展了全局组件的接口。目前,Volar已经支持这种用法。如果您使用的是Volar,您可以如下更改配置以获得支持。

Components({
  dts: true, // enabled by default if `typescript` is installed
  // dts: 'src/type/components.d.ts'
})

include下将components.d.ts添加到tsconfig.json

{
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
}
五、支持从UI库导入

image-20230215203701160

// vite.config.ts
import Components from 'unplugin-vue-components/vite'
import {
  AntDesignVueResolver,
  ElementPlusResolver,
  VantResolver,
} from 'unplugin-vue-components/resolvers'

// your plugin installation
Components({
  resolvers: [
    AntDesignVueResolver(),
    ElementPlusResolver(),
    VantResolver(),
  ],
})

可以去antfu大佬的插件链接查看更多的配置

3、unplugin-vue-define-options

Vue3 中写调试代码需要name

https://vue-macros.sxzz.moe/macros/define-options.html

一、安装
npm install unplugin-vue-define-options -D
二、配置
//vite.config.ts
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import defineOptions from 'unplugin-vue-define-options/dist/vite';

export default defineConfig({
  plugins: [vue(), defineOptions()],
});
三、TypeScript支持
// tsconfig.json
{
  "compilerOptions": {
    // ...
    "types": ["unplugin-vue-define-options/macros-global" /* ... */]
  }
}
四、使用
<script lang="ts" setup>
  defineOptions({
    name: 'YourName',
  });
</script>

4、vite-plugin-vue-setup-extend

vue3 中另外一种name定义方式,直接写在script标签上

https://github.com/vbenjs/vite-plugin-vue-setup-extend

一、安装

npm i vite-plugin-vue-setup-extend -D

二、配置 vite.config.js中

import vueSetupExtend from 'vite-plugin-vue-setup-extend'

export default defineConfig({
  plugins: [vue(), vueSetupExtend()],
})

三、使用

<script lang="ts" setup name="App">
  // script 里面必须有东西 哪怕是一个注释都行
</script>

5、pinia-plugin-persist

Pinia持久化插件

详情看: https://github.com/pan52yu/MyNote/blob/main/article/Vue3%E5%AD%A6%E4%B9%A0/Pinia.md

说明

  • 该项目技术栈为 Vue3 + TS + Pinia + Vue Router

About

在线地址

https://hu-vue3.vercel.app


Languages

Language:TypeScript 55.4%Language:Vue 42.9%Language:JavaScript 1.0%Language:HTML 0.6%Language:CSS 0.1%Language:SCSS 0.0%