天天看點

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);
  },