位置: 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个充电宝吗)

  • 苹果怎么清后台(苹果怎么清除最近运行)

    苹果怎么清后台(苹果怎么清除最近运行)

  • 手机微博uid怎么看别人的(新浪微博uid怎么找到)

    手机微博uid怎么看别人的(新浪微博uid怎么找到)

  • 苹果11与11pro区别(苹果11和11pro区别哪个大)

    苹果11与11pro区别(苹果11和11pro区别哪个大)

  • 小米手机暖屏怎么调成冷屏(小米11冷屏暖屏)

    小米手机暖屏怎么调成冷屏(小米11冷屏暖屏)

  • qq营销号是什么意思(qq营销号引流是什么意思)

    qq营销号是什么意思(qq营销号引流是什么意思)

  • x50什么处理器(rk3288处理器)

    x50什么处理器(rk3288处理器)

  • 微机的字长是四个字节这意味着什么(微机的字长是四个字节这意味着)

    微机的字长是四个字节这意味着什么(微机的字长是四个字节这意味着)

  • iphonexr怎么分屏(iphonexr怎么分屏一边玩游戏)

    iphonexr怎么分屏(iphonexr怎么分屏一边玩游戏)

  • cpu100度会坏吗(cpu温度100多度会不会烧坏了)

    cpu100度会坏吗(cpu温度100多度会不会烧坏了)

  • 图片打印不清晰怎么调整(图片打印不清晰怎么解决)

    图片打印不清晰怎么调整(图片打印不清晰怎么解决)

  • .net core和.net framework的区别(.net core和.net framework)

    .net core和.net framework的区别(.net core和.net framework)

  • 苹果11pro max充电85%就充不进去怎么回事(苹果11promax充电发烫怎么回事)

    苹果11pro max充电85%就充不进去怎么回事(苹果11promax充电发烫怎么回事)

  • qq音乐怎么扫描二维码(qq音乐怎么扫描登陆)

    qq音乐怎么扫描二维码(qq音乐怎么扫描登陆)

  • 红米k30与红米note8pro的区别(红米k30与红米note9参数对比)

    红米k30与红米note8pro的区别(红米k30与红米note9参数对比)

  • iphone11突然黑屏怎么按都没反应(iphone11突然黑屏无法打开了)

    iphone11突然黑屏怎么按都没反应(iphone11突然黑屏无法打开了)

  • 淘宝聚划算订单在哪里(淘宝聚划算怎么下单)

    淘宝聚划算订单在哪里(淘宝聚划算怎么下单)

  • 怎么在ios上下载哔咔(怎么在ios上下载不了软件)

    怎么在ios上下载哔咔(怎么在ios上下载不了软件)

  • 华为matex上市时间

    华为matex上市时间

  • 微信附近的人怎么加为好友(微信附近的人怎么打招呼通过率高)

    微信附近的人怎么加为好友(微信附近的人怎么打招呼通过率高)

  • 索尼电视插u盘怎么用(索尼电视插u盘怎么读取文件)

    索尼电视插u盘怎么用(索尼电视插u盘怎么读取文件)

  • 荣耀play3配置(荣耀play3配置怎么样)

    荣耀play3配置(荣耀play3配置怎么样)

  • 电脑ie浏览器怎么重装(电脑ie浏览器怎么升级到最高版本)

    电脑ie浏览器怎么重装(电脑ie浏览器怎么升级到最高版本)

  • pu口袋校园登不进去(pu口袋校园登不进去 pu口袋校园打不开)

    pu口袋校园登不进去(pu口袋校园登不进去 pu口袋校园打不开)

  • realmex什么时候上市(realmex什么时候停产)

    realmex什么时候上市(realmex什么时候停产)

  • 小米手机耳机孔在哪里(小米手机耳机孔接触不好怎么办)

    小米手机耳机孔在哪里(小米手机耳机孔接触不好怎么办)

  • neoCapture.exe - neoCapture是什么进程 有什么用

    neoCapture.exe - neoCapture是什么进程 有什么用

  • 印花税计提时应入什么科目
  • 职工的困难补助计入什么科目
  • 经营范围没广告怎么办
  • 工会建账选择哪个科目好
  • 财务报表申报有税额吗
  • 进出口企业外汇收支平衡
  • 视同内销补税的财务处理
  • 管理费用福利费和应付职工薪酬福利费区别
  • 物流辅助服务属于什么费用
  • 投资者回售选择权是什么意思
  • 发票作废了可以重新领吗
  • 理财的利息收入计入什么科目
  • 进口化妆品消费税率是多少
  • 月末结存材料的实际成本怎么计算
  • 高薪技术企业研发人员人数
  • 应收账款计提坏账后收回的会计分录
  • 报关单报关没做收入怎么办
  • 收到客户不要的定金怎么做账?
  • 公司的日常开销开发票怎么写
  • 企业事故赔偿支出可以抵税吗
  • 自营建造固定资产的账务处理
  • 网贷公司的印花税怎么交
  • 车辆进项税怎么算
  • 企业所得税是否有利于调节产业结构
  • 科技型中小企业认定需要什么条件
  • 增值税税控系统专用设备
  • 金融服务收入怎么算
  • 公账转私账可以撤销吗
  • 废料出售收入
  • 投标费用属于什么会计科目
  • 固定资产清理出售合同
  • 职工福利费汇算清缴怎么填写
  • 用车平台服务费怎么入账
  • 小微企业一般纳税人
  • 网络和共享中心在哪里打开
  • 微软 Windows x64 仿真正式推出,只支持 Win11 ARM
  • 进口应税消费品的组成计税价格公式
  • 什么是摊余成本计量的金融资产
  • 以固定资产换入无形资产
  • 个人出租住房如何开增值税专用发票
  • uniapp下拉菜单
  • 电费打发票用哪个软件
  • less中使用js变量
  • pythontime模块
  • mail命令发送邮件
  • 增值税专用发票上注明的价款含税吗
  • 补缴税款账务处理
  • python深拷贝与浅拷贝区别
  • 小规模企业免征增值税如何做账
  • 职工福利费开支超过准予扣除标准的金额为1.2
  • 合营企业和联营企业是重大影响吗
  • mysql子查询关键字
  • 企业所得税营业成本包括管理费用吗
  • 固定资产卡片账是什么
  • 赊销应收款余额怎么算
  • 支付员工经济补偿金会计处理方式
  • 自产赠送视同销售的成本如何确定?
  • 收到服务费发票可以计入什么科目
  • 股权转让如何进行资产评估的
  • 出售固定资产如何缴纳增值税
  • 税务局退以前年度的税款怎样记账
  • 研发支出资本化支出在资产负债表哪里体现
  • 企业如何进行年报
  • sqlserver数据库定时任务
  • win7鼠标自己移动
  • Windows Server 2008搭建终端服务器
  • win7系统中怎样没有智能卡服务
  • linux开启ssh服务失败
  • bootstrap4和3
  • qt for 安卓
  • shell脚本连接服务器
  • node.js最新版
  • 如何得到pull解析器?
  • 在javascript中如何定义并调用函数
  • 各类扩展名
  • javascript题
  • 3d游戏引擎诞生
  • 新能源办理免税的过程需要多长时间
  • 河南省医保网上报销流程
  • 4s店买车需要驾驶证吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设