【WePY小程序框架實戰三】-組件傳值

<view>
    <child name="leinov"></child>
</view>
子組件(child.wpy)
<template lang="wxml">
    <view>
        {{name}}
    </view>
</template>

<script>

    props={
        name:String
    }
    
    onLoad(){
        console.log(this.name);//leinov
    }
     
</script>

動態傳值

  • sync修飾符來達到父組件數據綁定至子組件的效果
  • 也能夠經過設置子組件props的twoWay: true來達到子組件數據綁定至父組件的效果
  • 若是既使用.sync修飾符,同時子組件props中添加的twoWay: true時,就能夠實現數據的雙向綁定了。

異步數據父子組件傳值注意

parentsession

<script>
  export default class Parents extends wepy.page {
    
    data = {
        tabdata:{}, //下面要用這裏必需要寫上
    }
    
    async onLoad() {
        
       let data =  await getData(,"public/data",{session_key:"1234456"});
       this.tabdata= data.tab;
       this.$apply();//必須
    }
  }
</script>
<template lang="wxml">
   <view class="title" slot="title"></view>
   <view class="title" slot="content">
     <Tab :tab.sync="tabdata" ></Tab>
   </view>
</template>

childapp

<template lang="wxml">
    <view class="title" slot="title">{{tab}}</view>
</template>
export default class Tab extends wepy.component {
      props = {
        tab:{
          type:Object,
          default:null,
          twoWay:true
        }
}

如下必須注意框架

  • 模版中要給子組件傳的值 在data裏要聲明好
  • 取到異步值後要使用this.$apply()手動更新組件
  • 在父組件中調用子組件的屬性名要加.sync
  • 子組件要使用父組件的props必須在props裏聲明
相關文章
相關標籤/搜索