欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序自定義組件和通信的方法

 更新時(shí)間:2024年06月20日 11:05:28   作者:激洪  
開(kāi)發(fā)中常見(jiàn)的組件主要分為公共組件和頁(yè)面組件兩種,因此注冊(cè)組件的方式也分為兩種全局注冊(cè)和局部注冊(cè),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

1、基本知識(shí)

開(kāi)發(fā)中常見(jiàn)的組件主要分為 公共組件 和 頁(yè)面組件 兩種,因此注冊(cè)組件的方式也分為兩種:

  • 全局注冊(cè):在 app.json 文件中配置 usingComponents 節(jié)點(diǎn)進(jìn)行引用聲明,注冊(cè)后可在任意組件使用
  • 局部注冊(cè):在頁(yè)面.json 文件中配置 usingComponents 節(jié)點(diǎn)進(jìn)行引用聲明,只可在當(dāng)前頁(yè)面使用

在組件的 .js 中,需要調(diào)用 Component 方法創(chuàng)建自定義組件,Component 中有以下兩個(gè)屬性:

  • data 數(shù)據(jù):組件的內(nèi)部數(shù)據(jù)
  • methods 方法:在組件中事件處理程序需要寫(xiě)到
  • methods 中才可以其他……

2、Properties屬性

屬性 Properties 是指組件的對(duì)外屬性,主要用來(lái)接收組件使用者傳遞給組件內(nèi)部的數(shù)據(jù),和 data 一同用于組件的模板渲染

Component({
   properties: {
     // 如果需要接收傳遞的屬性,有兩種方式:全寫(xiě)、簡(jiǎn)寫(xiě)
     label: String // 簡(jiǎn)寫(xiě)
     label: {
       // type 組件使用者傳遞的數(shù)據(jù)類(lèi)型
       // 數(shù)據(jù)類(lèi)型:String、Number、Boolean、Object、Array
       // 也可以設(shè)置為 null,表示不限制類(lèi)型
       type: String,
       value: ''
     },
     // 文字顯示位置
     position: {
       type: String,
       value: 'right'
     }
   }
})

3、slot插槽

在使用基礎(chǔ)組件時(shí),可以給組件傳遞子節(jié)點(diǎn)傳遞內(nèi)容,從而將內(nèi)容展示到頁(yè)面中,自定義組件也可以接收子節(jié)點(diǎn)內(nèi)容

只不過(guò)在組件模板中需要定義 <slot /> 節(jié)點(diǎn),用于承載組件引用時(shí)提供的子節(jié)點(diǎn)

默認(rèn)情況下,一個(gè)組件的 wxml 中只能有一個(gè) slot 。需要使用多 slot 時(shí),可以在組件 js 中聲明啟用。

同時(shí)需要給 slot 添加 name 來(lái)區(qū)分不同的 slot,給子節(jié)點(diǎn)內(nèi)容添加 slot 屬性來(lái)將節(jié)點(diǎn)插入到 對(duì)應(yīng)的 slot

Component({
  options: {
    // 啟用多 slot 支持
    multipleSlots: true
  }
})
<!-- 子組件 -->
<view>
  <slot name="slot-top" />
  <!-- slot 就是用來(lái)接收、承載子節(jié)點(diǎn)內(nèi)容 -->
  <!-- slot 只是一個(gè)占位符,子節(jié)點(diǎn)內(nèi)容會(huì)將 slot 進(jìn)行替換 -->
  <!-- 默認(rèn)插槽 -->
  <view><slot /></view>
  <slot name="slot-bottom" />
</view>
<custom01>
  <text slot="slot-top">我需要顯示到頂部</text>
  <!-- 默認(rèn)情況下,自定義組件的子節(jié)點(diǎn)內(nèi)容不會(huì)進(jìn)行展示 -->
  <!-- 如果想內(nèi)容進(jìn)行展示,需要再組件模板中定義 slot 節(jié)點(diǎn) -->
  我是子節(jié)點(diǎn)內(nèi)容
  <text slot="slot-bottom">我需要顯示到低部</text>
</custom01>

4、組件樣式隔離

默認(rèn)情況下,自定義組件的樣式只受到自定義組件 wxss 的影響。除非以下兩種情況:

  • app.wxss頁(yè)面. wxss 中使用了標(biāo)簽名(view)選擇器(或一些其他特殊選擇器)來(lái)直接指定樣式,這些選擇器會(huì)影響到頁(yè)面和全部組件。通常情況下這是不推薦的做法。
  • 指定特殊的樣式隔離選項(xiàng) styleIsolation,支持以下取值:
  • isolated 表示啟用樣式隔離,在自定義組件內(nèi)外,使用 class 指定的樣式將不會(huì)相互影響(一般情況下的默認(rèn)值);
  • apply-shared 表示頁(yè)面 wxss 樣式將影響到自定義組件,但自定義組件 wxss 中指定的樣式不會(huì)影響頁(yè)面;
  • shared 表示頁(yè)面 wxss 樣式將影響到自定義組件,自定義組件 wxss 中指定的樣式也會(huì)影響頁(yè)面和其他設(shè)置了 apply-shared 或 shared 的自定義組件。
Component({
  options: {
    styleIsolation: 'isolated'
  }
})

5、組件間通信

  • 父往子傳值:Properties
  • 子往父?jìng)髦担鹤远x事件、獲取組件實(shí)例

5.1 自定義事件

  • 自定義組件觸發(fā)事件時(shí),需要使用 triggerEvent 方法發(fā)射一個(gè)自定義的事件
  • 自定義組件標(biāo)簽上通過(guò) bind 方法監(jiān)聽(tīng)發(fā)射的事件

子組件觸發(fā)事件:

<!-- 在子組件中 -->
<button type="primary" plain bindtap="sendData">傳遞數(shù)據(jù)</button>
// 在子組件中
Component({
  // 組件的初始數(shù)據(jù)
  data: {
    num: 666
  },
  // 組件的方法列表
  methods: {
    // 將數(shù)據(jù)傳遞給父組件
    sendData () {
      // 如果需要將數(shù)據(jù)傳遞給父組件
      // 需要使用 triggerEvent 發(fā)射自定義事件
      // 第二個(gè)參數(shù),是攜帶的參數(shù)
      this.triggerEvent('myevent', this.data.num)
    }
  }
})

父頁(yè)面(組件)監(jiān)聽(tīng)事件:

<!-- 在父頁(yè)面(組件)中 -->
<view>{{ num }}</view>
<!-- 需要在自定義組件標(biāo)簽上通過(guò) bind 方法綁定自定義事件,同時(shí)綁定事件處理函數(shù) -->
<custom05 bind:myevent="getData" />
// 在父頁(yè)面(組件)中
Page({
  data: {
    num: ''
  },
  getData (event) {
    // 可以通過(guò)事件對(duì)象.detail 獲取子組件傳遞給父組件的數(shù)據(jù)
    // console.log(event)
    this.setData({
      num: event.detail
    })
  }
})

5.2 獲取組件實(shí)例

可在父組件里調(diào)用 this.selectComponent() ,獲取子組件的實(shí)例對(duì)象,就可以直接拿到子組件的任意數(shù)據(jù)和方法。

調(diào)用時(shí)需要傳入一個(gè)匹配選擇器 selector,如:this.selectComponent(".my-component")

到此這篇關(guān)于微信小程序自定義組件和通信的文章就介紹到這了,更多相關(guān)微信小程序組件和通信內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript htmlencode函數(shù)(ff兼容版) 主要是編輯器中反轉(zhuǎn)html代碼

    javascript htmlencode函數(shù)(ff兼容版) 主要是編輯器中反轉(zhuǎn)html代碼

    非常不錯(cuò)的htmlencode 方法,比用正則實(shí)現(xiàn)的更好,而且效率高,推薦使用第一種方法。
    2009-06-06
  • JavaScript檢測(cè)瀏覽器是否支持CSS變量代碼實(shí)例

    JavaScript檢測(cè)瀏覽器是否支持CSS變量代碼實(shí)例

    這篇文章主要介紹了JavaScript檢測(cè)瀏覽器是否支持CSS變量代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • JavaScript中創(chuàng)建對(duì)象的7種模式詳解

    JavaScript中創(chuàng)建對(duì)象的7種模式詳解

    本文主要介紹了JavaScript中創(chuàng)建對(duì)象的7種模式,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JavaScript編寫(xiě)實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    JavaScript編寫(xiě)實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了JavaScript編寫(xiě)實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • zTree插件下拉樹(shù)使用入門(mén)教程

    zTree插件下拉樹(shù)使用入門(mén)教程

    這篇文章主要為大家詳細(xì)介紹了zTree插件下拉樹(shù)使用入門(mén)教程,感興趣的小伙伴們可以參考一下
    2016-04-04
  • webpack 從指定入口文件中提取公共文件的方法

    webpack 從指定入口文件中提取公共文件的方法

    這篇文章主要介紹了webpack 從指定入口文件中提取公共文件的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • TypeScript路徑別名的配置指南

    TypeScript路徑別名的配置指南

    TypeScript 提供了路徑別名的功能,方便開(kāi)發(fā)者在大型項(xiàng)目中更高效地引用模塊,減少相對(duì)路徑的冗長(zhǎng)與復(fù)雜,本文將詳細(xì)介紹如何配置路徑別名,如何結(jié)合 Vite 和 Node 環(huán)境進(jìn)行別名設(shè)置,幫助開(kāi)發(fā)者在項(xiàng)目開(kāi)發(fā)中更為便捷地組織代碼,需要的朋友可以參考下
    2025-03-03
  • 基于JS實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音即文本朗讀

    基于JS實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音即文本朗讀

    這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用SpeechSynthesis實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音即文本朗讀的功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 如何計(jì)算Web動(dòng)畫(huà)幀率FPS

    如何計(jì)算Web動(dòng)畫(huà)幀率FPS

    我們知道,動(dòng)畫(huà)其實(shí)是由一幀一幀的圖像構(gòu)成的。有Web動(dòng)畫(huà)那么就會(huì)存在該動(dòng)畫(huà)在播放運(yùn)行時(shí)的幀率。而幀率在不同設(shè)備不同情況下又是不一樣的。有的時(shí)候,一些復(fù)雜或者重要?jiǎng)赢?huà),需要實(shí)時(shí)監(jiān)控它們的幀率,從而更好的優(yōu)化它們,本文就是介紹Web動(dòng)畫(huà)幀率(FPS)計(jì)算方法。
    2021-05-05
  • JavaScript把數(shù)組作為堆棧使用的方法

    JavaScript把數(shù)組作為堆棧使用的方法

    這篇文章主要介紹了JavaScript把數(shù)組作為堆棧使用的方法,實(shí)例分析了javascript操作數(shù)組的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論