位置: IT常识 - 正文

Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案

编辑:rootadmin
Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案 Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案文章目录Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案一.问题定位二.以下为完整解决代码:局部引入Toast全局引入Toast一.问题定位

推荐整理分享Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在Vite + Vue3 +Vant4构建项目时,需要使用Toast组件显示提示信息,按照官方文档使用函数调用

/**函数调用*为了便于使用 Toast,Vant 提供了一系列辅助函数,通过辅助函数可以快速唤起全局的 Toast 组件。*比如使用 showToast 函数,调用后会直接在页面中渲染对应的轻提示。*/import { showToast } from 'vant';showToast('提示内容');

使用后直接报错,说是找不到对应的样式文件(如下图):

在项目中查找node-moudles文件,确实没有找到,只有一个toast文件(如下图):

在百度搜索解决方法,说是需要单独引入以下样式文件:

但是,引用完之后依然报错,不管用。

继续查看官方文档,发现在官方文档最下方的常见问题里有解决方法:

Vant 从 4.0 版本开始不再支持 babel-plugin-import 插件,请参考 迁移指南 移除该插件。

Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案

按照官方文档说明,移除 babel-plugin-import插件,结果在项目中根本没使用该插件,到此为止,问题依然没有解决。

后来经过仔细观察发现,在项目文件vite.config.js中按需引入vant4时使用到了 vite-plugin-style-import 这个插件,

此时的 name 参数 其实就是 引入vant 组件的大括号内的名称,对比报错截图

既然show-toast/style/index找不到,那不妨直接修改路径 ,改为 toast/style/index

resolveStyle: (name) => { if (name == 'show-toast') { return `../es/toast/style/index`; //修改vant show-toast引入路径 } else { return `../es/${name}/style/index`; //修改vant引入路径 } },

修改后果然不再报错,局部注册和全局注册均正常:

二.以下为完整解决代码:局部引入Toast

1.vite.config.js

import { defineConfig} from 'vite';import vue from '@vitejs/plugin-vue';import { resolve} from 'path'; //引入路径import styleImport, { VantResolve} from 'vite-plugin-style-import'; //按需引入插件// https://vitejs.dev/config/export default defineConfig({ plugins: [ vue(), styleImport({ resolves: [VantResolve()], //引入vant libs: [{ libraryName: "vant", esModule: true, resolveStyle: (name) => { if (name == 'show-toast') { return `../es/toast/style/index`; //修改vant引入路径 } else { return `../es/${name}/style/index`; //修改vant引入路径 } }, }], }), ],})

2.在使用组件的页面

<template> <div class="container" style="padding-top: 30px"> <div style="display: flex; justify-content: center"> <van-button type="primary" @click="showLocalToast" >显示局部toast消息</van-button > </div> </div></template><script setup>import { ref, getCurrentInstance, onMounted } from "vue";import { showToast } from "vant";//引入showToastconst showLocalToast = () => { showToast("我是局部toast消息");};</script>全局引入Toast

1.vite.config.js

import { defineConfig} from 'vite';import vue from '@vitejs/plugin-vue';import { resolve} from 'path'; //引入路径import styleImport, { VantResolve} from 'vite-plugin-style-import'; //按需引入插件// https://vitejs.dev/config/export default defineConfig({ plugins: [ vue(), styleImport({ resolves: [VantResolve()], //引入vant libs: [{ libraryName: "vant", esModule: true, resolveStyle: (name) => { if (name == 'show-toast') { return `../es/toast/style/index`; //修改vant引入路径 } else { return `../es/${name}/style/index`; //修改vant引入路径 } }, }], }), ],})

2.在main.js全局引入

import { createApp} from 'vue'import App from './App.vue'// 按需引入vant组件import { showToast,} from 'vant';const app = createApp(App);app.config.globalProperties.$toast = showToast; //全局使用showToast组件app.mount('#app')

3.在使用组件的页面

<template> <div class="container" style="padding-top: 30px"> <div style="display: flex; justify-content: center; margin-top: 50px"> <van-button type="success" @click="showGlobalToast" >显示全局toast消息</van-button > </div> </div></template><script setup>import { ref, getCurrentInstance, onMounted } from "vue";const instance = getCurrentInstance(); //获取当前实例对象const _this = instance.appContext.config.globalProperties; //vue3获取当前thisconst showGlobalToast = () => { _this.$toast("我是全局注册消息");};</script>
本文链接地址:https://www.jiuchutong.com/zhishi/287977.html 转载请保留说明!

上一篇:最早的笔记本是什么(最早的笔记本是512m内存)

下一篇:飞机上可以充电吗(上飞机可以带2个充电宝吗)

  • 如何运用流行三法则,打造爆款营销活动?(如何运用流行理论来诱导消费者行为)

    如何运用流行三法则,打造爆款营销活动?(如何运用流行理论来诱导消费者行为)

  • 荣耀30青春版和荣耀30s有哪些区别(荣耀30青春版和华为nova5pro)

    荣耀30青春版和荣耀30s有哪些区别(荣耀30青春版和华为nova5pro)

  • nova5pro有红外吗(nova5pro带红外功能吗)

    nova5pro有红外吗(nova5pro带红外功能吗)

  • 微信群号码在哪里找(微信群号码在哪里可以加)

    微信群号码在哪里找(微信群号码在哪里可以加)

  • 华为手机红外线有哪几款(华为手机红外线空调万能遥控器)

    华为手机红外线有哪几款(华为手机红外线空调万能遥控器)

  • 苹果11pro什么基带(苹果11pro采用的什么基带)

    苹果11pro什么基带(苹果11pro采用的什么基带)

  • iphone6怎么截屏长图(iphone6怎么截屏?截屏方法分享)

    iphone6怎么截屏长图(iphone6怎么截屏?截屏方法分享)

  • 红米手机相册图标没了(红米手机相册图片放到桌面)

    红米手机相册图标没了(红米手机相册图片放到桌面)

  • 荣耀20Pro怎么设置锁屏(荣耀20Pro怎么设置动态壁纸)

    荣耀20Pro怎么设置锁屏(荣耀20Pro怎么设置动态壁纸)

  • 华为pro什么意思(华为pro系列手机介绍)

    华为pro什么意思(华为pro系列手机介绍)

  • 苹果系统能不能更新系统(苹果系统能不能降级)

    苹果系统能不能更新系统(苹果系统能不能降级)

  • qq拆礼物对方知道吗(qq送礼物对方拆开)

    qq拆礼物对方知道吗(qq送礼物对方拆开)

  • 固态硬盘是哪个盘(固态硬盘是哪个分区)

    固态硬盘是哪个盘(固态硬盘是哪个分区)

  • 鼠标空键程是什么意思(鼠标空键程需要更换吗)

    鼠标空键程是什么意思(鼠标空键程需要更换吗)

  • 手机后镜头玻璃怎么换(手机后镜头玻璃进灰)

    手机后镜头玻璃怎么换(手机后镜头玻璃进灰)

  • xsmax发热正常吗(xsmax发热严重怎么回事)

    xsmax发热正常吗(xsmax发热严重怎么回事)

  • 安卓手机微信夜间模式怎么开启(安卓手机微信怎么调夜间模式)

    安卓手机微信夜间模式怎么开启(安卓手机微信怎么调夜间模式)

  • 抖音视频播放量怎么看(抖音视频播放量低什么原因)

    抖音视频播放量怎么看(抖音视频播放量低什么原因)

  • 显卡的ti是什么意思(显卡的ti和s)

    显卡的ti是什么意思(显卡的ti和s)

  • hd通话收费吗(hd通话耗流量吗)

    hd通话收费吗(hd通话耗流量吗)

  • 数控编程6个步骤(数控编程6个步骤是什么)

    数控编程6个步骤(数控编程6个步骤是什么)

  • 黄钻成长加速卡怎么用(黄钻成长加速卡有什么用)

    黄钻成长加速卡怎么用(黄钻成长加速卡有什么用)

  • 拼多多的单号可以用到淘宝吗(拼多多的单号可以用在淘宝上吗)

    拼多多的单号可以用到淘宝吗(拼多多的单号可以用在淘宝上吗)

  • 微信名片上的电话号码怎么删除(微信名片上的电话号码不是自己的)

    微信名片上的电话号码怎么删除(微信名片上的电话号码不是自己的)

  • 加黑名单和删除的区别(拉到黑名单里的人怎么恢复)

    加黑名单和删除的区别(拉到黑名单里的人怎么恢复)

  • 2022个税手续费返还交增值税吗
  • 航天信息金税盘未打开
  • 无效产权转移的契税需要征收吗?
  • 财务人员如何管理固定资产
  • 应交增值税二级科目借贷方向
  • 营改增服务
  • 商业承兑汇票托收凭证怎么做分录
  • 公司闲置房租出去违法吗
  • 企业债务重组损失的所得税前扣除
  • 上个月银行流水没有录这个月补录
  • 营改增后手写发票还能用吗
  • 单位有临时工工资怎么发
  • 货到票未到的会计账务处理
  • intelin
  • 苹果mac有hdmi
  • 累进税率的特点是课税对象的数额越大,税率越
  • 如何关闭win11系统
  • 将u盘格式化
  • 分批供货付款方式
  • php that
  • 有限公司股权转让怎么办理流程
  • 天然气票据
  • 上月未开发票的销项税,已经申报缴税,在本月开了票,应该如何填报?
  • vue组件通信方法
  • 目标检测 2021
  • 小规模增值税减征额怎么算
  • 跨期发票的形成条件
  • 企业所得税申报表资产总额怎么填
  • 通用机打发票还能用吗
  • 畜牧业科技公司
  • 利息 记账
  • 借支差旅费属于什么科目
  • 附加税扣款时做成了借税金及附加怎么办
  • 小微企业确定条件
  • 计划成本核算的实际成本怎么算
  • 围挡属于市政还是建筑
  • 资本公积可以转增资本因此称之为准资本
  • 企业利润怎么提取出来
  • 已经费用化的研发支出还可以资本化吗
  • 附加税减免计入什么科目
  • 申报企业所得税会计分录怎么写
  • 员工过生日公司有福利吗
  • 月末需要计提
  • 银行手续费如何做账务处理
  • 未抵扣进项税额什么意思
  • 企业成本核算项目以及成本核算流程
  • 个税APP如何修改密码
  • 民办非企业没有了吗
  • 原始凭证基本要求是什么
  • 财务会计属于什么职位类别
  • 原始凭证填制的基本内容
  • 什么是备查账
  • sql根据名字查询
  • windows如何安装安卓软件
  • win102009发布日期
  • nfs安装配置
  • w7改w10硬盘怎么设置
  • mac快速操作在哪
  • win7和xp文件共享
  • linux cvf
  • win7蓝屏怎么办
  • java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系
  • bat中if语句的用法
  • css写文字
  • python 聚类算法包
  • NGUI之UICamera
  • jquery轮播图代码
  • js对象创建方法
  • 广东增值税电子专用发票
  • 山东发票查询系统平台
  • 深圳市福田区税务局电话
  • 国税发票真伪查询手机怎么查
  • 计征土地增值税时需要以评估价格来确定
  • 消费税的征收范围是如何规定的
  • 什么叫以物易物
  • 上海手撕发票多少钱一本
  • 贵州省高新区属于哪个县
  • 河北社保网上申报时间
  • 什么是社保补缴的标准
  • 城镇土地使用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设