Vue3 vant4 解决引入的Toast和dialog样式丢失的bug

情景再现:
正确做法:

import 'vant/es/toast/style'

import 'vant/es/dialog/style'

TypeScript 复制代码
import type { App } from 'vue'
import { showToast, type ToastOptions, closeToast, showDialog, type DialogOptions } from 'vant'
import 'vant/es/toast/style'
import 'vant/es/dialog/style'

// 全局消息提示
export const $toast = {
  text: (
    content: string,
    options: ToastOptions = {
      duration: 2000
    }
  ) =>
    showToast({
      message: content,
      ...options
    }),
  loading: (
    content: string,
    options: ToastOptions = {
      duration: 2000
    }
  ) =>
    showToast({
      message: content,
      type: 'loading',
      ...options
    }),
  success: (
    content: string,
    options: ToastOptions = {
      duration: 2000
    }
  ) =>
    showToast({
      message: content,
      type: 'success',
      ...options
    }),
  error: (
    content: string,
    options: ToastOptions = {
      duration: 2000
    }
  ) =>
    showToast({
      message: content,
      type: 'fail',
      ...options
    }),
  closeAll: () => {
    closeToast()
  }
}

// 全局确认框
export const $confirm = (content: string, options?: DialogOptions) => {
  return showDialog({
    title: options?.title || '提示',
    message: content,
    confirmButtonText: options?.confirmButtonText || '确定',
    cancelButtonText: options?.cancelButtonText || '取消',
    ...options
  })
}

// Vant 安装函数
export default function setupVant(app: App<Element>) {
  // 挂载到全局属性
  app.config.globalProperties.$toast = $toast
  app.config.globalProperties.$confirm = $confirm

  // 挂载到 window 对象,供其他模块使用
  if (typeof window !== 'undefined') {
    ;(window as any).$toast = $toast
    ;(window as any).$confirm = $confirm
  }

  // 提供给组合式 API 使用
  app.provide('$toast', $toast)
  app.provide('$confirm', $confirm)
}
效果如下
相关推荐
ttwuai42 分钟前
XYGo Admin 国际化实战:Vue3 中后台多语言方案详解
前端·javascript·vue.js·vue
还得是你大哥2 天前
Java互联网医院管理系统源码SpringBoot
java·spring boot·vue
会周易的程序员2 天前
aiDgeScanner:工业设备扫描与管理的一体化利器——深度解析上位机与扫描端的无缝协作
c++·物联网·typescript·electron·vue·iot·aiot
阿部多瑞 ABU2 天前
运动会智能编排系统 - 完整详细需求规格说明书
python·贪心算法·vue·html
AIGC包拥它3 天前
RAG 项目实战进阶:基于 FastAPI + Vue3 前后端架构全面重构 LangChain 0.3 集成 Milvus 2.5 构建大模型智能应用
人工智能·python·重构·vue·fastapi·milvus·ai-native
次次皮5 天前
代理启动前端dist包
java·前端·vue
展示猪肝5 天前
Vue2 + FastAPI + Dify 实现 AI 医疗预检分诊助手:从问诊追问到医生审核闭环
人工智能·vue·fastapi·dify
何忆清风5 天前
Easy Agent Pilot - Rust实现的开源桌面Agent软件
ai·rust·vue·agent·tauri·开发工具
码界筑梦坊5 天前
361-基于Python的空气质量气候数据分析预测系统
python·信息可视化·数据分析·flask·vue·毕业设计
我叫张小白。5 天前
劳动力招聘管理系统:全栈实战(Vue3+FastAPI+WebSocket+Dify)
websocket·vue·毕业设计·状态模式·fastapi·dify·智能体