首页  >  问答  >  正文

Vuejs:无法修改函数内的引用,但可以从模板修改引用

我正在尝试学习 Vue,并遇到了以下问题。

<template>
    <div>{{ name }}</div>
    <button @click="name = 'changed name'">Change</button>
</template>
<script setup>
    import { ref } from 'vue';
    let name = ref('first');
</script>

以上工作正常,当我单击按钮时,div 内的文本更改为更改的名称。但下面不起作用,变量 name 在函数中不可用吗?也使用了 defineExpose({name}) ,仍然不起作用。

<template>
    <div>{{ name }}</div>
    <button @click="changeName">Change</button>
</template>
<script setup>
    import { ref } from 'vue';
    let name = ref('first');
    const changeName = () => {
        name = 'changed name';
    }
</script>

P粉533898694P粉533898694211 天前283

全部回复(1)我来回复

  • P粉741678385

    P粉7416783852024-03-22 14:10:06

    在模板内您可以使用引用名称。但在脚本中您应该使用 name.value。

    <script setup>
            import { ref } from 'vue';
            const name = ref('first');
            const changeName = () => {
                name.value = 'changed name';
            }
        </ script>

    回复
    0
  • 取消回复