vuex 变量命名以下划线开头的一些错误

发布于 2022-09-06 15:53:42 字数 654 浏览 34 评论 0

代码:

我定义一个变量_cinfo,

data:function (){

        return {

            _cinfo: this.$store.state.picker.flow.current_flow_info,

        }
    }

然后监听他

watch:{

        _cinfo:{

            handler:function(a, b){
                
            },
            deep:true

        },
 },       

这样监听不到变化。如果我变量命名为cinfo,去掉了下划线就行了。

这个错误困扰了我几个小时,至今不理解内在的原理。是变量命名不允许这样吗?谁来解释一下。


此外,我在mapState里面这样定义也监听不到变化。非得在data里面才行。

computed: {

        ...mapState({
            cinfo: state => state.picker.flow.current_flow_info,
        }),
    

    },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖乖 2022-09-13 15:53:43
  1. 看文档:data
  2. 以 _ 或 $ 开头**的属性不会被 Vue 实例代理,因为它们可能和 Vue 内置的属性、API 方法冲突。你可以使用例如 **vm.$data._property 的方式访问这些属性。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文