微信小程序-父子組件通訊

基于confirm組件
使用微信開發(fā)者工具

最近在學(xué)習(xí)微信小程序,不止一個(gè)頁(yè)面有confirm衣撬,所以決定把他抽離成一個(gè)組件隘擎。剛好就涉及到了父子組件之間的通訊問(wèn)題殴穴。

如何創(chuàng)建組件,引入組件

創(chuàng)建組件

image

首先在components文件夾下新建g-confirm文件夾。右鍵點(diǎn)擊新建component货葬。會(huì)新建四個(gè)文件采幌。

image

因?yàn)槲募?nèi)有關(guān)于組件的配置問(wèn)題,所以不太建議新手自己手動(dòng)創(chuàng)建震桶。

引入組件

在pages/index文件夾下也就是主頁(yè)目錄下休傍,下打開index.json配置文件。
usingComponents配置下引入想使用的任何自定義組件

image

在index.wxml中引入組件

<!--index.wxml-->
<view class="container">
  <text>這是在主頁(yè)內(nèi)</text>
  <g-confirm></g-confirm>
</view>

成功引入自定義組件

image

confirm組件

需求: 點(diǎn)擊按鈕調(diào)出confirm,用戶輸入后獲取輸入的內(nèi)容. 因?yàn)榘裞onfirm抽離成組件,所以涉及到了組件之間的通信

點(diǎn)擊按鈕confirm出現(xiàn),選擇后confirm隱藏

使用visible的值控制confirm

index.wxml

<button bind:tap="click">添加任務(wù)</button>
<g-confirm visible="{{visible}}" bind:sureClick="sureClick" bind:cancelClick="cancelClick"></g-confirm> 
// 使用visible組件,并將visible的值傳遞給confirm
// 監(jiān)聽子組件觸發(fā)的事件,并做出相應(yīng)
<view >用戶輸入的是--{{inputValue}}</view>

index.js

data;{
    visible: false,
    inputVale: ""
},
click(){
    this.setData({
        visible: true
    })
},
sureClick(event){
    this.setData({
        visible: false
    })
},
cancelClick(){
    this.setData({
        visible: false
    })
}
// 當(dāng)子組件按鈕被點(diǎn)擊時(shí)觸發(fā),隱藏confirm

g-confirm.wxml

<view class="confirmWrapper" wx:if="{{visible}}">
// wx:if和v-if類似,只有值為true時(shí)才渲染
  <view class="confirm">
  <textarea class="input"></textarea>
  <view class="actions">
    //給按鈕綁定事件
    <view class="sure" bind:tap="sureClick">確定</view>
    <view class="cancel" bind:tap="cancelClick">取消</view>
  </view>
  </view>
</view>

g-confirm.js

 // 接收參數(shù)
  properties: {
    visible: {
      type: Boolean,
      value: false
    }
  },
  methods: {
    sureClick() {
      this.triggerEvent("sureClick",'按鈕被點(diǎn)擊');
      // 微信小程序的事件中心,類似 emit()
      // 觸發(fā)sureClick事件
    },
    cancelClick() {
      this.triggerEvent("cancelClick");
    }
  }

監(jiān)聽用戶輸入的內(nèi)容,傳遞給父組件

用戶輸入完畢后,將用戶輸入的內(nèi)容展示到頁(yè)面
g-confirm.wxml

<textarea value="{{value}}" bind:input="watchInput"></textarea>
// 監(jiān)聽input輸入框,用戶輸入內(nèi)容改變都會(huì)觸發(fā)

g-confirm.js

  data: {
    value: ""
  },
  methods: {
    watchInput(event) {
      this.data.value = event.detail.value;
      // input內(nèi)容每次變動(dòng),就把他存到data里
    },
    sureClick() {
      this.triggerEvent("sureClick",this.data.value);
      // 事件中心, 點(diǎn)擊確認(rèn)后將value傳遞給父組件
    },
    cancelClick() {
      this.triggerEvent("cancelClick");
    }
  }

index.wxml

  <g-confirm bind:sureClick="sureClick" bind:cancelClick="cancelClick" ></g-confirm>
  <view >用戶輸入的是--{{inputValue}}</view>
  // 綁定inputValue值

index.js

  data: {
    inputValue: ""
  },
  sureClick(event){
    this.setData({
      inputValue: event.detail
    })
    // 只有通過(guò)setData改變data的值,頁(yè)面內(nèi)容才會(huì)同步刷新
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹲姐,一起剝皮案震驚了整個(gè)濱河市磨取,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柴墩,老刑警劉巖忙厌,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異江咳,居然都是意外死亡逢净,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門歼指,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)爹土,“玉大人,你說(shuō)我怎么就攤上這事踩身≌鸵穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵挟阻,是天一觀的道長(zhǎng)琼娘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)附鸽,這世上最難降的妖魔是什么脱拼? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮拒炎,結(jié)果婚禮上挪拟,老公的妹妹穿的比我還像新娘挨务。我一直安慰自己击你,他們只是感情好玉组,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丁侄,像睡著了一般惯雳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸿摇,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天石景,我揣著相機(jī)與錄音,去河邊找鬼拙吉。 笑死潮孽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的筷黔。 我是一名探鬼主播往史,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佛舱!你這毒婦竟也來(lái)了椎例?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤请祖,失蹤者是張志新(化名)和其女友劉穎订歪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肆捕,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刷晋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了福压。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掏秩。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荆姆,靈堂內(nèi)的尸體忽然破棺而出蒙幻,到底是詐尸還是另有隱情,我是刑警寧澤胆筒,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布邮破,位于F島的核電站,受9級(jí)特大地震影響仆救,放射性物質(zhì)發(fā)生泄漏抒和。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一彤蔽、第九天 我趴在偏房一處隱蔽的房頂上張望摧莽。 院中可真熱鬧,春花似錦顿痪、人聲如沸镊辕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)征懈。三九已至石咬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卖哎,已是汗流浹背鬼悠。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亏娜,地道東北人焕窝。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像维贺,于是被迫代替她去往敵國(guó)和親袜啃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 因新工作主要負(fù)責(zé)微信小程序這一塊幸缕,最近的重心就移到這一塊群发,該博客是對(duì)微信小程序整體的整理歸納以及標(biāo)明一些細(xì)節(jié)點(diǎn),初...
    majun00閱讀 7,341評(píng)論 0 9
  • 第一章 什么是微信小程序 1. 小程序介紹 微信小程序是一種全新的連接用戶與服務(wù)的方式发乔,它可以在微信內(nèi)被便捷地獲取...
    呆毛和二貨閱讀 822評(píng)論 0 1
  • 微信小程序由于適用性強(qiáng)熟妓、邏輯簡(jiǎn)要、開發(fā)迅速的特性栏尚,疊加具有海量活躍用戶的騰訊公司背景起愈,逐漸成為了輕量級(jí)單一功能應(yīng)用...
    純文筆記閱讀 4,045評(píng)論 1 9
  • 本篇小說(shuō)原文亦可參見《納博科夫短篇小說(shuō)全集》中的《昆蟲采集家》。 1译仗、小說(shuō)是從什么地方開始和結(jié)束的抬虽?可否改換?會(huì)出...
    典典的蟹媽閱讀 515評(píng)論 2 4
  • 晚上纵菌,我沿著胡同散步阐污,胡同是一個(gè)上坡,那晚又正是個(gè)圓月之夜咱圆,所以我很清楚地看見一個(gè)男人從遠(yuǎn)處向我跑來(lái)笛辟。即使他是衣著...
    簡(jiǎn)書茶館葉老板閱讀 2,376評(píng)論 14 26