账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex的使用:为什么我可以在js中这样修改state的值
    18
    0

    官网是这样说的

    你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit)
    mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

    但是在我的项目中我这样写

    var list = this.$store.state.records;
    for(let i=0;i<list.length;i++){
        list[i].days = this.computeDayas(list[i].time);
    }
    

    通过vuex-devtools发现state中的records多出了days的一个属性!?,这是为什么呢?我并没有显示的去修改数据啊


    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Vue.js中,你可以通过以下方式在JavaScript中修改state的值:

      1. 使用set方法:set方法允许你在组件的状态改变时更新组件的内部状态。你可以使用this.$set方法来更新state。例如:

      javascript this.$set('count', count + 1);

      这将在组件的状态中添加一个名为count的新属性,其值为当前的count值加1。

      1. 使用get方法:get方法允许你在组件的状态改变时获取当前状态的值。你可以使用this.$get方法来获取状态。例如:

      javascript console.log(this.$get('count'));

      这将在浏览器控制台中打印出当前的count值。

      1. 使用watch方法:watch方法允许你在组件的状态改变时更新组件的内部状态。你可以使用this.$watch方法来监听状态的改变。例如:

      javascript this.$watch('count', function(newCount) { console.log('The count has changed to:', newCount); });

      这将在组件的状态改变时打印出一个消息。

      注意,set方法和get方法只能在组件的状态改变时更新组件的内部状态。如果你想在组件的状态改变前或后改变状态,你需要使用watch方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部