• vue3 vuex4 store的响应式取值


    场景:

    在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。

    <script setup lang="ts">
    import { useStore } from '@/vuex';
    const store = useStore()
    const onSubmit = () => {
      store.dispatch("incrementAction", 1);
    }
    let count = store.state.count
    </script>
    <template>
      <h1 @click="onSubmit">{{ count }}</h1>
    </template>

    原因:store.state.count错误的取值方式,虽然可以取出,但是丧失了响应式,也就是触发increment事件时候,count的值不会变化

    解决:

    <script setup lang="ts">
    import { useStore } from '@/vuex';
    import {computed} from 'vue'
    const store = useStore()
    const onSubmit = () => {
      store.dispatch("incrementAction", 1);
    }
    let num = computed(() => store.state.count)
    </script>
    
    <template>
      <h1 @click="onSubmit">{{ count }}</h1>
      <h1>{{$store.state.count}}</h1>
    </template>

    或者,标签中用$store.state.count也能取得响应式的值。

  • 相关阅读:
    php面向对象方法
    php数组中元素的操作
    PHP数组的排序
    [设计模式]抽象工厂模式
    [设计模式]建造者模式
    [设计模式]工厂方法模式
    [设计模式]简单工厂模式
    [设计模式]单例模式
    设计模式系列
    JAVA 设计模式 状态模式
  • 原文地址:https://www.cnblogs.com/wang715100018066/p/16623771.html
Copyright © 2020-2023  润新知