最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3 defineProps設(shè)置默認(rèn)值報(bào)錯(cuò)問題及解決過程

 更新時(shí)間:2025年08月04日 09:14:05   作者:下雪天的夏風(fēng)  
這篇文章主要介紹了Vue3 defineProps設(shè)置默認(rèn)值報(bào)錯(cuò)問題及解決過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題

使用 defineProps 指定默認(rèn)值時(shí)報(bào)錯(cuò),代碼如下:

<template>
	<input type="text" :placeholder="props.placeholder" />
</template>

<script setup lang="ts">
import { useI18n } from "vue-i18n";

const { t } = useI18n();

interface Props {
	placeholder: string;
}
const props = withDefaults(defineProps<Props>(), {
	placeholder: t("home.title"),
});
</script>

報(bào)錯(cuò)信息:

翻譯:

  • <script setup> 中的 defineProps() 不能引用本地聲明的變量,因?yàn)樗鼘⒈惶嵘?setup() 函數(shù)外。
  • 如果你的組件選項(xiàng)需要在 module scope(模塊作用域)中初始化,可使用單獨(dú)的 <script> 來導(dǎo)出這些選項(xiàng)。

分析

SFC 有2個(gè) scopemodule scopesetup scope。

按照報(bào)錯(cuò)信息分析:因?yàn)樵?setup scope 中定義的本地變量會被提升到 module scope。所以 defineProps() 不能引用本地聲明的變量。

官方文檔 中也有說明,

測試1

<template>
	<input type="text" :placeholder="props.placeholder" />
</template>

<script setup lang="ts">
interface Props {
	placeholder: string;
}
const a = "1234";
const props = withDefaults(defineProps<Props>(), {
	placeholder: a,
});
</script>

這樣定義的本地變量,渲染并沒有問題!

測試2,修改代碼如下,渲染報(bào)錯(cuò)!

const a = () => "1234";
const props = withDefaults(defineProps<Props>(), {
	placeholder: a(),
});

按報(bào)錯(cuò)提示信息測試

所以按照報(bào)錯(cuò)提示信息,可使用單獨(dú)的 <script> 來導(dǎo)出這些選項(xiàng):

方式1:√

<script lang="ts">
const a = () => "1234";
</script>

<script setup lang="ts">
interface Props {
	placeholder: string;
}

const props = withDefaults(defineProps<Props>(), {
	placeholder: a(),
});
</script>

方式2:√

export const a = () => "1234";
<script setup lang="ts">
import { a } from "./index";
interface Props {
	placeholder: string;
}

const props = withDefaults(defineProps<Props>(), {
	placeholder: a(),
});
</script>

測試 vue-i18n

<script lang="ts">
import { useI18n } from "vue-i18n";
const { t } = useI18n();
</script>

<script setup lang="ts">
interface Props {
	placeholder: string;
}
const props = withDefaults(defineProps<Props>(), {
	placeholder: t("home.title"),
});
</script>

發(fā)現(xiàn) const { t } = useI18n(); 只能在 setup 中使用:

但如果在 setup 中使用函數(shù)調(diào)用的方式,就會報(bào)錯(cuò)。

解決

所以,使用外部導(dǎo)入的方式來使用 vue-i18n

<template>
	<input type="text" :placeholder="props.placeholder" />
</template>

<script setup lang="ts">
import i18n from "@/i18n";

interface Props {
	placeholder: string;
}
const props = withDefaults(defineProps<Props>(), {
	placeholder: i18n.global.t("home.title"),
});
</script>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項(xiàng)目引入遠(yuǎn)程jweixin-1.2.0.js文件并使用詳解

    vue項(xiàng)目引入遠(yuǎn)程jweixin-1.2.0.js文件并使用詳解

    這篇文章主要介紹了vue項(xiàng)目引入遠(yuǎn)程jweixin-1.2.0.js文件并使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 詳解nginx配置vue h5 history去除#號

    詳解nginx配置vue h5 history去除#號

    這篇文章主要介紹了詳解nginx配置vue h5 history去除#號,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue2+elementUI實(shí)現(xiàn)下拉樹形多選框效果實(shí)例

    vue2+elementUI實(shí)現(xiàn)下拉樹形多選框效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于vue2+elementUI實(shí)現(xiàn)下拉樹形多選框效果的相關(guān)資料,這是最近的工作中遇到的一個(gè)需求,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 在vue中使用iframe解決視頻資源的防盜鏈

    在vue中使用iframe解決視頻資源的防盜鏈

    我們的vue2.0項(xiàng)目當(dāng)中,存儲了許多圖片和視頻資源,所以我們需要增加防盜鏈設(shè)置,但是這樣一來,當(dāng)我們將其他網(wǎng)站上的視頻資源,想入到我們的環(huán)境當(dāng)中的時(shí)候,會報(bào)錯(cuò),所以本文給大家介紹了在vue中使用iframe解決視頻資源的防盜鏈,需要的朋友可以參考下
    2023-12-12
  • Nginx部署前端Vue項(xiàng)目的步驟、常見問題與解決方案

    Nginx部署前端Vue項(xiàng)目的步驟、常見問題與解決方案

    在現(xiàn)代Web開發(fā)中,Vue.js成為前端開發(fā)者構(gòu)建單頁應(yīng)用的熱門框架,Nginx以其高性能和穩(wěn)定性,成為部署Vue項(xiàng)目的理想選擇,這篇文章主要介紹了Nginx部署前端Vue項(xiàng)目的步驟、常見問題與解決方案,需要的朋友可以參考下
    2024-09-09
  • Vue 3 動態(tài) ref 的使用方式以表格為列

    Vue 3 動態(tài) ref 的使用方式以表格為列

    我正在開發(fā)的項(xiàng)目中,有一個(gè)表格組件,其中一列是分鏡描述,需要支持視頻上傳功能,下面給大家介紹Vue 3動態(tài)ref的使用方式以表格為列給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2023-07-07
  • Vue Getters和mapGetters的原理及使用示例詳解

    Vue Getters和mapGetters的原理及使用示例詳解

    Vuex的核心概念包括state、mutations、actions、getters和modules,今天,我們要深入探討其中一個(gè)關(guān)鍵部分:getters,以及它的相關(guān)輔助函數(shù)mapGetters,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • vue-router鉤子函數(shù)實(shí)現(xiàn)路由守衛(wèi)

    vue-router鉤子函數(shù)實(shí)現(xiàn)路由守衛(wèi)

    這篇文章主要介紹了vue-router鉤子函數(shù)實(shí)現(xiàn)路由守衛(wèi),對vue感興趣的同學(xué),可以參考下
    2021-04-04
  • vue實(shí)現(xiàn)div可拖動位置也可改變盒子大小的原理

    vue實(shí)現(xiàn)div可拖動位置也可改變盒子大小的原理

    這篇文章主要介紹了vue實(shí)現(xiàn)div可拖動位置也可改變盒子大小,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • vue3.0+ts引入詳細(xì)步驟以及語法校驗(yàn)報(bào)錯(cuò)問題解決辦法

    vue3.0+ts引入詳細(xì)步驟以及語法校驗(yàn)報(bào)錯(cuò)問題解決辦法

    Vue?3.0是一個(gè)非常流行的JavaScript框架,不僅易于學(xué)習(xí)和使用,而且可以與許多UI框架集成,下面這篇文章主要給大家介紹了關(guān)于vue3.0+ts引入詳細(xì)步驟以及語法校驗(yàn)報(bào)錯(cuò)問題的解決辦法,需要的朋友可以參考下
    2024-01-01

最新評論

信丰县| 宣武区| 渭源县| 尚志市| 泰宁县| 晋州市| 当阳市| 宽城| 民权县| 马关县| 安庆市| 尉氏县| 临颍县| 衡阳县| 喜德县| 聂荣县| 河东区| 青阳县| 杂多县| 改则县| 祁东县| 静乐县| 古浪县| 兴隆县| 鄂伦春自治旗| 班戈县| 城固县| 册亨县| 筠连县| 北宁市| 盐源县| 丹阳市| 阜康市| 平武县| 霍邱县| 晋城| 黑龙江省| 安庆市| 手游| 太仆寺旗| 枣庄市|