vue3 ts defineProps()设置i18n无效

项目环境:vue3 ts + element plus + i18n 

我想在组件中的默认值中defineProps()中设置国际化,本组件就是一个form表单,其中有查询按钮,及重置按钮,原本是写活,可以在调用时,自己设置,但现在要求要配置国际化。但运行突然报了错,如下:.

希望页面功能如下:

下方是报错:

组件具体代码如下:

<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t } = useI18n() // 解构出t方法
...const props = defineProps({
...
formBtn: {type: Object,default() {return {query: {text: t('system.query.btnSubmit'),//这是一个按钮的配置,也是问题所在type: 'primary',show: true,},reset: {text: '', //resetTxt,type: '',show: true,},}},},
...})</script>

大致意思是就是,在defineProps中,你不可以设置变量形式的内容,因为国际化t('')是个函数,所以导致了的错,组件默认值不可以用变量形式,

有网友的回答如下:

当我们使用script setup的时候,其实是编译器帮我们把代码编译回去setup的方法,类似我们在defineComponent里写setup方法,所以setup本身是一个独立的作用域(setup scope)。

而vue组件本身是一个js文件,也就是script方法里也是一个作用域(module scope)。

也就是说一个vue组件其实同时具备了两个作用域

作者:星光免兔

https://www.bilibili.com/read/cv17785652/ 出处:bilibili

解决方法:

在下方新增个script标签


<script setup lang="ts">
//原来的页面逻辑import { useI18n } from 'vue-i18n'
const { t } = useI18n() // 解构出t方法
...const props = defineProps({
...
formBtn: {type: Object,default() {return {query: {text: queryTxt,//在下方已经定义了type: 'primary',show: true,},reset: {text: resetTxt,//在下方已经定义了type: '',show: true,},}},},
...})</script>//第二个script中没有setup,因为一个vue3中,有且只有一个setup,同时lang也要一致。
<script lang="ts">
//新增的内容//因为是ts文件,所以按普通页面的国际化法引入
import i18n from '@/lang/index'
let _t: any = i18n.global//设置两个变量,因为在一个文件中,有两个相同的域,所以,上方是可以引入这个变量的。
let queryTxt: string = _t.t('system.query.btnSubmit')
let resetTxt: string = _t.t('system.query.btnReset')
</script>

此时,页面不报错了。

英文状态

中文状态

现在可以自己切换了,提示,目前我的切换后必须要刷新一下页面,不知道为什么i18n在普通ts\js文件中设置是无法无刷新切换的。

回顾i18n用法:

在vue3+ts中,如.<标签>{{ $t('login.title') }}</标签>

<div class="title">{{ $t('login.title') }}</div>

2 在<script setup>...</script>中

2.1 普通用法(最常见的)

  • a.引入:vue-i18n(请注意:是引入的vue-i18,并且通过useI18n解构),并且解构{t}。
  • b.使用:直接使用t("")方法,如:t('login.form.fields.userName')
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t } = useI18n() // 解构出t方法// 随便定义一个变量
let message:string = t('login.form.fields.userName')...
<script>

2.2 在普通.ts文件,或者.js文件中使用

在普通文件中,你就不能使用上述方法引入了。你必须引入本地文件中的i18n。具体如下:

//common.ts文件中。...
import i18n from '@/lang/index' //我本地的i18n实例
let _t: any = i18n.global//公共配置
export let common: any = {site: {title: _t.t('system.global.companyName')//站点名称},}
...

这个时候,你的国际化就设置完毕了。

但是你一切换的时候,必须要重新刷下页面才行,否则普通js\ts中的内容无法切换,我尝试了很多种方法都不行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP地址与子网掩码

1 IP地址 1.1 IPv4与IPv6 1.2 IPv4地址详解 IPv4地址分4段&#xff0c;每段8位&#xff0c;共32位二进制数组成。 1.2.1 地址分类 这32位又被分为网络号和主机号两部分&#xff0c;根据网络号占用位数的不同&#xff0c;又可分为以下几类&#xff1a; A类地址&#xff1a;…

4.4学习总结

一.线段树概念 一.定义: 线段树是一种二叉搜索树&#xff0c;而二叉搜索树&#xff0c;首先满足二叉树&#xff0c;即每个结点最多有两颗子树&#xff0c;并且是一颗搜索树&#xff0c;我们要知道&#xff0c;线段树的每个结点都存储了一个区间&#xff0c;也可以理解成一个线…

算法(滑动窗口四)

1.串联所有单词的子串 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff…

【NLP练习】中文文本分类-Pytorch实现

中文文本分类-Pytorch实现 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1. 任务说明 本次使用Pytorch实现中文文本分类。主要代码与文本分类代码基本一致&#xff0c;不同的是本次任务使用…

FAS-Net

感想 图的下标弄不好&#xff0c;且作者未提供代码。AAAI的质量也就这样吧

Web Component 组件库有什么优势

前言 前端目前比较主流的框架有 react&#xff0c;vuejs&#xff0c;angular 等。 我们通常去搭建组件库的时候都是基于某一种框架去搭建&#xff0c;比如 ant-design 是基于 react 搭建的UI组件库&#xff0c;而 element-plus 则是基于 vuejs 搭建的组件库。 可能你有这种体…

Transformer的代码实现 day03(Positional Encoding)

Positional Encoding的理论部分 注意力机制是不含有位置信息&#xff0c;这也就表明&#xff1a;“我爱你”&#xff0c;“你爱我”这两者没有区别&#xff0c;而在现实世界中&#xff0c;这两者有区别。所以位置编码是在进行注意力计算之前&#xff0c;给输入加上一个位置信息…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(五)- 向量加载和存储

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

Redis -- 缓存穿透问题解决思路

缓存穿透 &#xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。 常见的解决方案有两种&#xff1a; 缓存空对象 优点&#xff1a;实现简单&#xff0c;维护方便 缺点&#xff1a; 额外…

【JavaSE】接口 详解(上)

前言 本篇会讲到Java中接口内容&#xff0c;概念和注意点可能比较多&#xff0c;需要耐心多看几遍&#xff0c;我尽可能的使用经典的例子帮助大家理解~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 接口 语法…

pta 1086 就不告诉你

1086 就不告诉你 分数 15 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 做作业的时候&#xff0c;邻座的小盆友问你&#xff1a;“五乘以七等于多少&#xff1f;”你应该不失礼貌地围笑着告诉他&#xff1a;“五十三。”本题就要求你&#xff0c;对任何一对给定的正整数…

新手开抖店:选品过后如何有效对接达人?这些方法100%有效!

哈喽~我是电商月月 要说做抖音小店最主要的是什么&#xff1f;那当然是找品了 那出单最快的方法是什么&#xff1f;无疑是达人带货了&#xff01; 但新手店铺没销量&#xff0c;没体验分&#xff0c;没好评怎么能让达人同意帮我们带货呢&#xff1f; 方法其实很简单&#x…

“双碳”目标下资源环境中的可计算一般均衡(CGE)模型应用

我国政府承诺在2030年实现“碳达峰”&#xff0c;2060年实现“碳中和”&#xff0c;这就是“双碳”目标。为了实现这一目标就必须应用各种二氧化碳排放量很高技术的替代技术&#xff0c;不仅需要考虑技术上的可靠性&#xff0c;也需要考虑经济上的可行性。可计算一般均衡模型&a…

AI预测福彩3D第26弹【2024年4月4日预测--第4套算法重新开始计算第11次测试】

今天清明节假日&#xff0c;一会要外出&#xff0c;可能要晚点回来。咱们尽早先把预测数据跑完&#xff0c;把结果发出来供各位彩友参考。合并下算法&#xff0c;3D的预测以后将重点测试本套算法&#xff0c;因为本套算法的命中率较高。以后有时间的话会在第二篇文章中发布排列…

UTONMOS:AI+Web3+元宇宙数字化“三位一体”将触发经济新爆点

人工智能、元宇宙、Web3&#xff0c;被称为数字化的“三位一体”&#xff0c;如何看待这三大技术所扮演的角色&#xff1f; 3月24日&#xff0c;2024全球开发者先锋大会“数字化的三位一体——人工智能、元宇宙、Web3.0”论坛在上海漕河泾开发区举行&#xff0c;首次提出&…

深入探索MySQL:成本模型解析与查询性能优化,及未来深度学习与AI模型的应用展望

码到三十五 &#xff1a; 个人主页 在数据库管理系统中&#xff0c;查询优化器是一个至关重要的组件&#xff0c;它负责将用户提交的SQL查询转换为高效的执行计划。在MySQL中&#xff0c;查询优化器使用了一个称为“成本模型”的机制来评估不同执行计划的优劣&#xff0c;并选择…

网络安全 | 什么是负载均衡器?

关注WX&#xff1a; CodingTechWork 介绍 负载均衡是在多个服务器之间有效分配网络流量的过程。负载均衡的目的是优化应用程序的可用性&#xff0c;并确保良好的终端用户体验。负载均衡可协助高流量网站和云计算应用程序应对数百万个用户请求&#xff0c;从而保证客户请求不会…

2012年认证杯SPSSPRO杯数学建模C题(第二阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现&#xff1a; 从 1984 年的美国洛杉矶奥运会开始&#xff0c;奥运会就不在成为一个“非卖品”&#xff0c;它在向观众诠释更高更快更强的体育精神的同时&#xff0c;也在攫取着巨大的商业价值&#…

颜色空间/模型(RGB, YUV,CMY/CMYK, HSI, HSV等)

什么是颜色 颜色是通过眼、脑和我们的生活经验所产生的对光的视觉感受&#xff0c;我们肉眼所见到的光线&#xff0c;是由波长范围很窄的电磁波产生的&#xff0c;不同波长的电磁波表现为不同的颜色&#xff0c;对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的视觉神经感觉…

51单片机实验02- P0口流水灯实验

目录 一、实验的背景和意义 二、实验目的 三、实验步骤 四、实验仪器 五、实验任务及要求 1&#xff0c;从led4开始右移 1&#xff09;思路 ①起始灯 &#xff08;led4&#xff09; ②右移 2&#xff09;效果 3&#xff09;代码 2&#xff0c;从其他小灯并向右依次…