zanghui426 2022-03-31 23:56 采纳率: 100%
浏览 288
已结题

vue3中setup()中定义的函数点击没有作用,用vue2写法就正常。请教下vue3下哪里写的不对

问题遇到的现象和发生背景

vue3中setup()中定义的函数点击没有作用,用vue2写法就正常。请教下vue3下哪里写的不对

问题相关代码,请勿粘贴截图

Count.vue代码如下:

<template>
    <div>
        <h1>当前求和为:{{sum}}</h1>
        <select v-model.number="n">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <button @click="increment">+</button>
    </div>
</template>

<script>
    export default {
        // eslint-disable-next-line vue/multi-word-component-names
        name:'Count',

    setup() {
      let n = 1;
      let sum = 0;

      const increment=()=>{
                sum += n
            }

      return {
        n,
        sum,
        increment
      }
    }
    }
</script>

<style lang="css">
    button{
        margin-left: 5px;
    }
</style>



App.vue代码如下:


<template>
    <div>
        <Count/>
    </div>
</template>

<script>
    import Count from './components/Count.vue'
    export default {
        name:'App',
        components:{Count},
    }
</script>

main.js代码如下:

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')


运行结果及报错内容

点击+号button,没有任何反应。

我的解答思路和尝试过的方法

我想要达到的结果

不知道哪里出了问题。

  • 写回答

3条回答 默认 最新

  • 上官熊猫 2022-04-01 08:51
    关注

    如果需要视图也更新,则需要使用ref或reactive,示例:

    <script>
    import { ref } from "vue";
    export default {
      // eslint-disable-next-line vue/multi-word-component-names
      name: "Count",
      setup() {
        let n = ref(1);
        let sum = ref(0);
    
        const increment = () => {
          sum.value += n.value;
        };
    
        return {
          n,
          sum,
          increment,
        };
      },
    };
    </script>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 3月31日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题