vue中watch的深度监听—针对引用数据(数组、对象等)

vue中watch的深度监听—针对引用数据(数组、对象等)

1、首先父组件将值传递给子组件:

<!--图书入库-->
<div v-if="fatherStage=='7-3'">
  <stepThree :step3Data="step3Data" @examineFn="examineFn" :modelPrintNum="modelPrintNum"></stepThree>
</div>

2、子组件接收父组件的值,并深度监听,以便操作数据:

<script>
    import "@/styles/commonRe.css";
    import Cookies from "js-cookie";
    import {bookStorageAPI} from '@/api/newBook/printing';
      export default {
        name: 'HelloWorld',
        //接收的父组件的传值
        props:['modelPrintNum','step3Data'],
        data() {
            return {
              isShow:true,
              step3Form: {
                bigBankCount:'',
              },
              dataList:{},
              vueStatus: false,
              dataSubmitLoading: false,
              stage:[
                {title:'入库信息',name:'样书数量',remark:'备注'},
                {title:'其他说明',name:'入库数量',remark:'库房备注'},
              ],
            }
        },
        created() {
          this.step3Form=this.step3Data||{bigBankCount:'',};
          if(this.$route.fullPath.indexOf('lookId') >= 0){
            this.vueStatus = true;
          }
        },
        watch: {
          modelPrintNum:{
            handler(val){
              this.modelPrintNum = val
              if(val.printNum && val.modelBookNum){
                //大库数量 = 印数 - 样书
                this.step3Form.bigBankCount = val.printNum - val.modelBookNum
                //小库数量 = 样书
                this.step3Form.smallBankCount = val.modelBookNum
                this.isShow = false
                this.$nextTick(()=>{
                  this.isShow = true
                })
              }
            },
            //深度监听传入的 modelPrintNum 数据
            deep:true,
            //立即执行handler中的操作,即可完成对 父组件传入值 的操作
            immediate:true,
          }
        },
        methods: {
            
        },
      }
    </script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值