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

代码:

我定义一个变量_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,
        }),
    

    },
阅读 3.9k
1 个回答
  1. 看文档:data
  2. 以 _ 或 $ 开头**的属性不会被 Vue 实例代理,因为它们可能和 Vue 内置的属性、API 方法冲突。你可以使用例如 **vm.$data._property 的方式访问这些属性。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏