1.我们通常使用计算属性,是不带参数的,如

computed: {
      getInitVal:function(){
          return rst
       }
 }, 
     

2.带参数的计算属性

computed: {
      getInitVal(){
        return function(key_){
          return rst
        }
      }, 
  },

总结:若计算属性在本组内内使用,正常使用即可。 

3.特别注意的是,父组件的计算属性传递给子组件时,父组件的任意点击事件,都会重新计算计算属性, 从而 影响子组件, 要在子组件watch监听这个计算属性做判断
在父组件中,unitInitVal 通过计算属性得到

<pos-text
   :unitInitVal="getInitVal(item.key)"
   />
computed: {
      getInitVal(){
        return function(key_){
          let rst = {}
          //doing
          return rst
        }
      }, 
     
    },

在子组件中 watch 监听

props: {
   unitInitVal: {
        type: Object,
        default(){
          return {}
        }
      },
}
watch: {
unitInitVal: {
        handler(newData, oldData) {
          if(Object.keys(newData).length===0 && Object.keys(oldData).length===0)           {
            //啥都不做
          }
          else{
            this.init()
          }
        },
        deep: true
            },
}

CUI_PING
42 声望3 粉丝