vite常用插件

1.iconify图标

1.安装

unocss
iconify

npm i -D unocss @unocss/preset-icons @iconify/json

2.配置vite.config.js

import { defineConfig } from 'vite'

import Unocss from 'unocss/vite';
import { presetUno, presetAttributify, presetIcons } from 'unocss';
import UnocssIcons from '@unocss/preset-icons'

export default defineConfig({
  plugins: [
    Unocss({
      //自定义规则
      rules:[
        ["flex",{display:"flex"}],
        ["red",{color:"red"}]
      ],
      //配置图标
      presets: [
        UnocssIcons({
          prefix: 'i-',
          extraProperties: {
            display: 'inline-block'
          }
        }),
        presetUno(),
        presetAttributify(),
        presetIcons(),
      ],
    })
  ]
})

3.使用

//main.js导入
import 'uno.css'
//z
<template>
    <div i-akar-icons:full-screen></div>
    <div i-emojione:dog></div>
    <div i-akar-icons:music></div>
    <div i-emojione:first-quarter-moon-face></div>
    <div i-emojione:full-moon-face></div>
</template>

2.@指向src

1.配置

找到文件vite.config.js,写入以下配置即可

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from "path";
const pathResolve = (dir) => resolve(__dirname, dir);

export default defineConfig({
  plugins: [
    vue()
  ],
  resolve: {
    alias: {
      "@": pathResolve("./src") // 新增
    }
  },
})

2.使用

import "@/assets/styl/index.scss";

3.env环境变量

1.创建

在根目录下创建两个文件,分别为.env.development开发模式和 .env.production生产模式。

//.env.development
//VITE_开头
VITE_TITLE=第一个网页
//.env.production
//VITE_开头
VITE_TITLE=第一个网页

2.配置

//package.json

  "scripts": {
    "dev": "vite --mode development",
    "build": "vite build --mode production"
  },

3.使用

console.log(import.meta.env.VITE_TITLE);

4.运行

npm run dev
# or
npm run build

4.mitt事件总线

vue3中取消了事件总线,所以用mitt插件事件总线传递数据

1.安装

npm install mitt

2.使用

A.vueB.vue互为兄弟组件,app.vue父组件

//src/utils/bus   main.jsdao'ru
import mitt from "mitt";
const bus = {};
const emitter = mitt();
bus.on = emitter.on;
bus.off = emitter.off;
bus.emit = emitter.emit;
 
export default bus
//src/views/A.vue
<template>
  <h1>A</h1>
  <button @click="emit">emit</button>
</template>

<script setup lang="ts">
import { reactive, getCurrentInstance } from "vue"
import bus from '../utils/bus'
const instance = getCurrentInstance()
type M = {
  name: string
  age: number
}
const val: M = reactive({
  name: "张三",
  age: 23
})
const emit = () => {
  const { name, age } = val
  bus.emit("on-emit1", { name, age })
  bus.emit("on-emit2", { name, age })
  bus.emit("on-emit3", { name, age })
  bus.emit("on-emit4", { name, age })
}
</script>
//src/views/B.vue
<template>
  <h1>B</h1>
</template>

<script setup lang="ts">
import { getCurrentInstance } from "vue"
import bus from '../utils/bus'
const instance = getCurrentInstance()
//触发事件
bus.on("on-emit", (res) => {
  console.log(res)
})
//*表示监听所有的事件触发
bus.on("*", (res) => {
  console.log(res)
})
</script>
//src/app.vue
<template>
  <div>
    <A></A>
    <B></B>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue"

import bus from './utils/bus'
import  A from "./components/A.vue"
import  B from "./components/B.vue"
</script>

5.自动导入

1.安装

npm install -D unplugin-auto-import

2.配置vite.config.js

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports:["vue","vue-router"],//自动导入的依赖名字
      dts:"src/auto-import.d.ts"//生成的文件夹/名字
    })
  ]
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小钱要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值