1. uniapp props、ref、ref、ref、emit、parent、parent、parent、child、$on
1.1. 父組件和子組件
??propsPage.vue導入props-son-view.vue組件的時候,我們就稱index.vue為父組件依次類推,在vue中只要能獲取到組件的實例,那么就可以調用組件的屬性或是方法進行操作
1.2. props(一般用來單向傳值)
??props最適合傳遞數據,它并不能調用子組件里的屬性和方法
1.2.1. 何為單向傳值?
??即父組件傳值給子組件(首次)但不能動態(再次)改變子組件現有的值,但我非要改呢? 通過watch監聽或者通過$ref標識獲取實例后修改以及使用v-modal,使用v-modal會存在不同步情況->使用.sync
1.2.2. props
??(1)props靜態傳值
??子組件通過props選項來聲明一個自定義的屬性,然后父組件就可以在嵌套標簽的時候,通過這個屬性往子組件傳遞數據 - 引用腳本。
??(2)props動態傳值
??通過v-bind綁定props的自定義的屬性,傳遞去過的就不是靜態的字符串了,它可以是一個表達式、布爾值、對象等等任何類型的值 - 引用腳本之家
1.2.3. 示例
??(1)propsPage.vue
<template><view><view class="btn-item" @click="clickTap()">按鈕</view><view class="slot-item"><!--子組件--><props-son-view :msgValue="msgValue" ><template v-slot:lifeSon><view class="slot-item">子組件</view></template></props-son-view></view></view>
</template>
<script>
import PropsSonView from "./props-son-view.vue";export default {components: {PropsSonView},data() {return {msgValue: "",}},onLoad() {},methods: {clickTap() {this.msgValue = "發送給子組件數據"console.log("clickTap",this.msgValue);}}
}
</script><style scoped>
.btn-item {display: inline-block;background-color: #3cc51f;font-size: 12px;padding: 10px 30px;border-radius: 10px;
}
.slot-item {font-size: 16px;padding: 10px;
}
</style>
??(2)props-son-view.vue
<template><view><view class="slot-item">我是子組件:{{msgValue}}</view><slot name="lifeSon"></slot></view>
</template>
<script>
export default {data() {return {title: 'Hello'}},props: {msgValue: {type: String