store的bug之值与地址

值和地址的区别

  • store对象里面有值和API
  • 当外部进行赋值时:
    count = store.count:将值复制给count
    recordList = store.recordList:将地址复制给recordList
  • 问题:
    1.当store里面的count发生变化时,外部的count并没有任何改变
    2.当store里面的recordList发生变化时,外部recordList发生变化
  • 解决:
    1.不要用data来获取count,因为它只获取一遍,要用computed
    ——computed:当内部数值发生变化时就计算然后赋值给外部的数据
    2.要告诉Vue监听store的变化——赋值就可以监听
    ——因为store是一个独立对象,必须要监听
  • 注意:API可以放到外面,但是懒得区分就都可以放到computed里面
@Component({
    components: {FormItem, Tags, Types, NumberPad},
    computed:{
      count(){
        return store.count
      },
      recordList(){
        return store.recordList
      }
    }
  })
//全局:App.vue
<script lang="js">
  import store from '@/store/index2'
  export default {
    data(){
      return {
        store:store;
      }
    }
  }
  • 小tip
    还可以把store挂到原型上,这样就可以用this.$store来使用store
    但要注意在custom.d.ts里面声明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值