天天看点

vue父组件给子组件传值

vue父组件给子组件传值

注:文章中难免会存在问题,欢迎大家一起沟通,并指正文章中存在的问题。

一、父组件给子组件传值

1、思路:父组件监听界面的变化(样式的变化或数据的变化),并把变化的值传递给子组件、子组件监听传递的值给需要的区域赋值。

2、监听:

computed:{
    leftHeadPartTwoLeftData()
    {
      return {
         height:((this.browserHeight - 110))/10*6.5-1,
         data:this.workProcesData
      }
    }
}
           

3、传值(给子组件):把值赋给自定义属性(workProcesParams),并在子组件里面接收workProcesParams的值

4、接收值(子组件):

props:{
    workProcesParams: {
        type:Object,
        default: {}
    }
  }
           

注意:这里的类型需要和传递的值的类型一致,避免类型不一致报错。

5、类型不一致报错:这里之前我传递的是array类型,但是实际是接收的是object.

6、监听接收的值(子组件):

watch:{
    //深度监听
    // workProcesParams: {
    //     deep: true,
    //     handler: function (newVal,oldVal){
    //         console.log('newValue', newVal);
    //         console.log('oldValue', oldVal.text);
    //     }
    // }
    //普通监听
    workProcesParams(newVal,oldVal)
    {
      debugger;
      this.timeLineData=newVal.data;
      this.height=newVal.height;
    }
  }
           

7、初始化赋值:

created(){
    debugger;
    this.timeLineData=this.workProcesParams.data;
    this.height=this.workProcesParams.height;
    console.log(this.height);
  },