1、父組件傳遞給子組件值,首先在components 中新建一個testComponents子組件,代碼如下:
testComponents.wxml
<view> <text>{{value}}</text> </view>
testComponents.js
Component({ /** * 組件的屬性列表 */ properties: { value:{ type:String, //指定傳過來的值的類型 value:0 //默認值,假如沒有值傳過來,value就會顯示默認值 } }, })
2、接下來我們新建一個index父組件,對應代碼如下:
index.json
{ "usingComponents": { "testComponent":"../../components/testComponent/testComponent" //子組件的路勁 } }
index.wxml
<view > <testComponent value="張三"></testComponent> </view>
3、運行index父組件得到的效果圖如下(假如value值沒傳,那么內容就會顯示為默認值:0):
4、子組件傳遞給父組件值,還是用上面的子組件,代碼如下:
testComponent.wxml
<view> <button bindtap="testClick">點擊傳遞給父組件值</button> </view>
testComponent.js
Component({ /** * 組件的方法列表 */ methods: { testClick(){ //triggerEvent可以理解為vue中$emit this.triggerEvent("myevent","張三") } } })
5、還是用上面的父組件,代碼如下:
index.json
{ "usingComponents": { "testComponent":"../../components/testComponent/testComponent" } }
index.js
Page({ data:{ value:null }, thismyevent(e){ // e.detail = 子組件傳遞過來的值 this.setData({ value:e.detail }) } })
index.wxml
<view > <testComponent bindmyevent="thismyevent"></testComponent> <text style="display: flex;justify-content:center;">{{value}}</text> </view>
6、點擊按鈕得到子組件傳遞過來的張三,運行代碼得到的效果圖如下: