목차
1. 슬롯
하위 구성 요소는 구멍을 뚫습니다
위챗 애플릿 미니 프로그램 개발 미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석

미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석

Nov 02, 2021 am 09:57 AM
미니 프로그램 위챗 슬롯 상위-하위 구성요소 통신

이 글에서는 WeChat 애플릿의 슬롯과 부모-자식 구성 요소 통신의 여러 방법을 소개하겠습니다. 도움이 되길 바랍니다!

미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석

오늘은 미니 프로그램에서 슬롯과 부모-자식 컴포넌트 간의 통신에 대해 살펴보고, vue와 어떤 차이점이 있는지 살펴보겠습니다. [관련 학습 추천 : 미니 프로그램 개발 튜토리얼]

1. 슬롯

1.

사용자 정의 구성 요소의 wxml 구조에서 구성 요소 사용자wxml 结构中,可以提供一个 节点(插槽),用于承载组件使用者提供的 wxml 结构

미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석

其实插槽, 说的通俗一些, 就是 子组件挖坑,父组件填坑 的过程。由父组件在使用子组件的时候, 决定子组件内部的某一些布局展示

  • 子组件通过挖坑
  • 父组件通过组件标签中间的内容来填坑

2. 单个插槽

在小程序中,默认每个自定义组件中只允许使用一个  slot 占位,这种个数上的限制叫做单个插槽

  • 默认情况下,一个组件的 wxml 中只能有一个 slot
  • 需要使用多 slot 时,可以在组件 js 中声明启用
  • 注意:小程序中目前只有默认插槽和多个插槽,暂不支持作用域插槽

代码如下(示例):

<!-- 组件的封装者 -->
<view class="wrapper">
  <view>这里是组件的内部节点</view>
  <!-- 对于不确定的内容,可以使用<slot>进行占位,具体的内容由组件的使用者决定 -->
  <slot></slot>
</view>

<!-- 组件的使用者 -->
<component-tag-name>
  <!-- 这部分内容将被放置在组件<slot>的位置上 -->
  <view>这里是插入到组件slot的内容</view>
</component-tag-name>
로그인 후 복사

3. 启动多个插槽

在小程序的自定义组件中,需要使用多 插槽时,可以在组件的 .js 文件中

代码如下(示例):

Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多 slot 支持
  },
  properties: { /* ... */ },
  methods: { /* ... */ }
})
로그인 후 복사

4. 定义多个插槽

可以在组件的 .wxml 中使用多个 标签,以不同的 name

미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석wxml 구조를 호스팅하기 위해 노드(슬롯)를 제공할 수 있습니다. ="https://img.php.cn/upload/image/578/865/189/1635817685891354.png" title="1635817685891354.png" alt="미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석"/>

실제 슬롯이라고 하더군요 더 일반적인 버전은 하위 구성 요소가 구멍을 파고 상위 구성 요소가 구멍을 채우는 과정입니다. 상위 구성 요소가 하위 구성 요소를 사용할 때 하위 구성 요소 내부의 레이아웃 표시를 결정합니다

하위 구성 요소는 구멍을 뚫습니다

상위 구성 요소는 구성 요소 태그 중간에 있는 콘텐츠를 통해 구멍을 채웁니다

2 . 단일 슬롯
  • JSON미니 프로그램에서는 기본적으로 각 사용자 정의 구성 요소에 하나의 슬롯 자리 표시자가 허용됩니다. 이 수 제한을 단일 슬롯이라고 합니다.

  • 기본적으로 하나입니다. 구성 요소의 wxml

    여러 슬롯을 사용해야 하는 경우 구성 요소 에서 사용할 수 있습니다. js 활성화하는 명령문
  • 참고this.selectComponent(): 현재 미니 프로그램에는 기본 슬롯과 여러 개의 슬롯만 있으며 범위 슬롯은 아직 지원되지 않습니다

코드는 다음과 같습니다(예):

<!-- 组件模板 -->
<view class="wrapper">
  <!-- name 为 before 的第一个 slot 插槽 -->
  <slot name="before"></slot>
  <view>这是一段固定的文本内容</view>
  <!-- name 为 after 的第二个 slot 插槽 -->
  <slot name="after"></slot>
</view>
로그인 후 복사
3. 다중 슬롯 시작

  • 미니 프로그램의 사용자 정의 구성 요소에서 다중 슬롯을 사용해야 하는 경우 .js 파일에 다음 코드(예제)를 추가할 수 있습니다. 구성 요소:
  • // 父组件的 data 节点
    data: {
      count: 0
    }
    
    // 父组件的wxml 结构
    <my-test3 count="{{count}}"></my-test3>
    <view>~~</view>
    <view>父组件中,count值为:{{count}}</view>
    로그인 후 복사

4. 여러 슬롯 정의
구성 요소의 .wxml에서 여러 태그를 사용하여 이름이 다른 여러 슬롯을 구분할 수 있습니다. 코드는 다음과 같습니다(예):

// 子组件的 properties 节点
properties: {
  count: Number
}

// 子组件的 wxml 结构
<text>子组件中,count值为:{{count}}</text>
로그인 후 복사

2. 상위-하위 컴포넌트 통신

1. 상위-하위 컴포넌트 통신 방법

  • 父组件js 中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件
  • 父组件wxml 中,通过自定义事件的形式,将步骤 1 中定义的函数引用,传递给子组件
  • 子组件js 中,通过调用 this.triggerEvent(&#39;自定义事件名称&#39;, {/* 参数对象 */}),将数据发送到父组件
  • 在父组件的 js 中,通过 e.detail 获取到子组件传递过来的数据

4. 事件绑定的核心实现代码

  • 步骤1: 在父组件的 js 中,定义一个函数,这个函数即将通过自定义事件的形式,传递给子组件

代码如下(示例):

// 父组件中定义 syncCount 方法
// 将来,这个方法会被传递给子组件,供子组件进行调用
syncCount() {
  console.log(&#39;syncCount&#39;)
},
로그인 후 복사
  • 步骤 2:在父组件的 wxml 中,通过自定义事件的形式,将 步骤 1 中定义的函数引用,传递给子组件

代码如下(示例):

<!-- 使用 bind: 自定义事件名称(推荐:结构清晰) -->
<my-test3 count="{{count}}" bind:sync="syncCount"></my-test3>
<!-- 或在 bind 后面直接协商自定义事件名称 -->
<my-test3 count="{{count}}" bindsync="syncCount"></my-test3>
로그인 후 복사
  • 步骤 3:在 子组件js 中,通过调用 this.triggerEvent(&#39;自定义事件名称&#39;, {/* 参数对象 */})
  • 속성 바인딩 상위 구성요소에 데이터를 하위 구성요소의 지정된 속성으로 설정하는 데 사용됩니다.
호환되는 데이터만 설정할 수 있습니다(데이터만 전달할 수 있고 메서드는 전달할 수 없음)

🎜🎜 이벤트 바인딩 하위 구성 요소가 상위 구성 요소에 데이터를 전달하는 데 사용됩니다. 모든 데이터(배열 및 메서드 포함)를 전달할 수 있습니다.🎜🎜🎜🎜구성 요소 인스턴스 가져오기 상위 구성 요소는 🎜를 통해 하위 구성 요소 인스턴스 개체를 얻을 수도 있으므로 하위 구성 요소🎜🎜🎜🎜🎜🎜2 패스 데이터의 모든 데이터 및 메서드에 직접 액세스할 수 있습니다. 속성 바인딩은 부모에서 자식으로 값을 전송하는 데 사용되며 일반적인 유형의 데이터만 전달할 수 있습니다. 메서드는 자식 구성 요소에 전달할 수 없습니다(예): 🎜
// 子组件的wxml结构
<text>子组件中,count值为:{{count}}</text>
<button type="primary" bindtap="addCount">+1</button>

// 子组件中的 js 代码
methods: {
  addCount() {
    this.setData({
      count: this.properties.count + 1
    })
    this.triggerEvent(&#39;sync&#39;, {value: this.properties.count})
  }
}
로그인 후 복사
로그인 후 복사
🎜🎜데이터 수락🎜🎜🎜 하위 구성 요소가 속성에 있습니다. 노드에서 해당 속성을 선언하고 사용합니다. 코드는 다음과 같습니다. 통과했다. 사용 단계는 다음과 같습니다. 🎜🎜🎜상위 구성 요소js에서 함수를 정의합니다. 이 함수는 a 형식으로 하위 구성 요소에 전달됩니다. custom event🎜🎜 < code>상위 컴포넌트의 wxml에서 1단계에서 정의한 함수 참조를 커스텀 이벤트 형식으로 하위 컴포넌트에 전달합니다🎜🎜하위 구성요소</code ><code>js에서는 this.triggerEvent('custom event name', {/* 매개변수 객체*/})</code를 호출하여 상위 구성요소에 데이터를 보냅니다. > 상위 컴포넌트의 <code>js에서 e.detail🎜🎜🎜🎜🎜4을 통해 하위 컴포넌트가 전달한 데이터를 가져옵니다.4 이벤트 바인딩의 핵심 구현 코드🎜 🎜🎜 🎜🎜1단계: 상위 구성 요소의 js에서 함수를 정의합니다. 이 함수는 맞춤 이벤트 형식으로 하위 구성 요소에 전달됩니다.🎜🎜🎜코드는 다음과 같습니다( 예): 🎜
syncCount(e) {
  // console.log(e.detail.value)
  this.setData({
    count: e.detail.value
  })
}
로그인 후 복사
로그인 후 복사
🎜🎜 2단계: 상위 구성 요소의 wxml에서 1단계에서 정의한 함수 참조를 사용자 정의 이벤트 형식으로 하위 구성 요소에 전달합니다.🎜🎜🎜코드는 다음과 같습니다. 다음과 같습니다(예):🎜
// wxml结构
<my-test3 count="{{count}}" bind:sync="syncCount" class="customA" id="cA"></my-test3>
<button bindtap="getChild">获取子组件实例</button>

getChild() { // 按钮的tap事件处理函数
  // 切记下面参数不能传递标签选择器 &#39;my-test3&#39;,不然返回的是 null
  const child = this.selectComponent(&#39;.customA&#39;) // 也可以传递 id 选择器 #cA
  child.setData({ count: child.properties.count + 1 }) // 调用子组件的 setData 方法
  child.addCount() // 调用子组件的 addCount 方法 
}
로그인 후 복사
로그인 후 복사
🎜🎜 3단계: 하위 구성요소js에서 this.triggerEvent('custom event name', {/* 매개변수를 호출합니다. object*/})< /code>, 상위 구성 요소에 데이터 보내기 🎜🎜🎜코드는 다음과 같습니다(예): 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// 子组件的wxml结构 &lt;text&gt;子组件中,count值为:{{count}}&lt;/text&gt; &lt;button type=&quot;primary&quot; bindtap=&quot;addCount&quot;&gt;+1&lt;/button&gt; // 子组件中的 js 代码 methods: { addCount() { this.setData({ count: this.properties.count + 1 }) this.triggerEvent(&amp;#39;sync&amp;#39;, {value: this.properties.count}) } }</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><ul><li>步骤 4:在父组件的 <code>js 中,通过 e.detail 获取到子组件传递过来的数据

代码如下(示例):

syncCount(e) {
  // console.log(e.detail.value)
  this.setData({
    count: e.detail.value
  })
}
로그인 후 복사
로그인 후 복사

5. 使用 selectComponent 获取组件实例

父组件如何获得子组件实例?

可在父组件里调用 this.selectComponent("id或class选择器"),获取子组件的实例对象,从而直接访问子组件的任意数据和方法。调用时需要传入一个选择器,例如 this.selectComponent(".my-component")

代码如下(示例):

// wxml结构
<my-test3 count="{{count}}" bind:sync="syncCount" class="customA" id="cA"></my-test3>
<button bindtap="getChild">获取子组件实例</button>

getChild() { // 按钮的tap事件处理函数
  // 切记下面参数不能传递标签选择器 &#39;my-test3&#39;,不然返回的是 null
  const child = this.selectComponent(&#39;.customA&#39;) // 也可以传递 id 选择器 #cA
  child.setData({ count: child.properties.count + 1 }) // 调用子组件的 setData 方法
  child.addCount() // 调用子组件的 addCount 方法 
}
로그인 후 복사
로그인 후 복사

更多编程相关知识,请访问:编程入门!!

위 내용은 미니 프로그램의 슬롯과 상위-하위 구성 요소 간의 여러 통신 방법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

'아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있으며, 중국 애플의 기술 컨설턴트는 앱 스토어 수수료에 대해 텐센트와 소통 중이라고 전했다. '아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있으며, 중국 애플의 기술 컨설턴트는 앱 스토어 수수료에 대해 텐센트와 소통 중이라고 전했다. Sep 02, 2024 pm 10:45 PM

단서를 제출해주신 네티즌 Qing Qiechensi, HH_KK, Satomi Ishihara 및 Wu Yanzu(중국 남부)에게 감사드립니다! 9월 2일자 뉴스에 따르면 최근 '아이폰16이 위챗을 지원하지 않을 수도 있다'는 루머가 돌고 있다. 이에 대해 쉘파이낸스 기자는 애플 공식 핫라인에 전화를 걸어 iOS 시스템이나 애플 기기가 계속 지원될 수 있다고 답했다. 위챗, 위챗을 이용해 애플 앱스토어에 계속해서 상장하고 다운로드할 수 있는지 여부에 대한 문제는 향후 상황을 판단하기 위해 애플과 텐센트 간의 소통과 논의가 필요하다. 소프트웨어 앱 스토어 및 위챗 문제 설명 소프트웨어 앱 스토어 기술 컨설턴트는 개발자가 소프트웨어를 애플 스토어에 올리려면 수수료를 지불해야 할 수도 있다고 지적했습니다. 특정 다운로드 횟수에 도달하면 Apple은 후속 다운로드에 대해 해당 요금을 지불해야 합니다. 애플은 텐센트와 적극적으로 소통하고 있으며,

DeepSeek 이미지 생성 자습서 DeepSeek 이미지 생성 자습서 Feb 19, 2025 pm 04:15 PM

Deepseek : 강력한 AI 이미지 생성 도구! DeepSeek 자체는 이미지 생성 도구가 아니지만 강력한 핵심 기술은 많은 AI 페인팅 도구를 지원합니다. DeepSeek을 사용하여 이미지를 간접적으로 생성하는 방법을 알고 싶으십니까? 계속 읽으십시오! DeepSeek 기반 AI 도구로 이미지 생성 : 다음 단계에서는 다음 도구를 사용하도록 안내합니다. AI 페인팅 도구 시작 : DeepSeek 기반 AI 페인팅 도구를 검색하고 열면 "Simple AI"를 검색하십시오). 도면 모드 선택 : "AI 드로잉"또는 유사한 함수를 선택하고 "애니메이션 아바타", "풍경"과 같은 필요에 따라 이미지 유형을 선택하십시오.

이 문제에 정통한 사람들은 '위챗이 애플 아이폰 16을 지원하지 않을 수도 있다'고 답했다. 소문은 소문일 뿐이다. 이 문제에 정통한 사람들은 '위챗이 애플 아이폰 16을 지원하지 않을 수도 있다'고 답했다. 소문은 소문일 뿐이다. Sep 02, 2024 pm 10:43 PM

WeChat이 iPhone 16을 지원한다는 소문이 사실이 아님을 폭로했습니다. 단서를 제출해주신 네티즌 Xi Chuang Jiu Shi와 HH_KK에게 감사드립니다! 9월 2일자 뉴스에 따르면 오늘 WeChat이 iPhone 16을 지원하지 않을 수 있으며 iPhone이 iOS 18.2 시스템으로 업그레이드되면 iPhone이 WeChat을 사용할 수 없다는 소문이 돌고 있습니다. '매일경제' 취재 결과, 해당 소문은 루머라는 사실이 해당 사건에 정통한 관계자로부터 확인됐다. Apple의 답변: Shell Finance에 따르면 중국에 있는 Apple의 기술 컨설턴트는 WeChat을 iOS 시스템이나 Apple 기기에서 계속 사용할 수 있는지, 그리고 WeChat이 Apple App Store에 계속 등록 및 다운로드될 수 있는지에 대한 문제에 대해 응답했습니다. Apple과 Tencent 사이에서 해결해야 할 사항은 소통과 논의를 통해서만 향후 상황을 결정할 수 있습니다. 현재 애플은 텐센트의 지속적인 지원 여부를 확인하기 위해 텐센트와 적극적으로 소통하고 있다.

Gateio 중국 공식 웹 사이트 Gate.io 거래 플랫폼 웹 사이트 Gateio 중국 공식 웹 사이트 Gate.io 거래 플랫폼 웹 사이트 Feb 21, 2025 pm 03:06 PM

2013 년에 설립 된 주요 암호 화폐 거래 플랫폼 인 Gate.io는 중국 사용자에게 완전한 공식 중국 웹 사이트를 제공합니다. 이 웹 사이트는 스팟 거래, 선물 거래 및 대출을 포함한 광범위한 서비스를 제공하며 중국 인터페이스, 풍부한 자원 및 커뮤니티 지원과 같은 특별한 기능을 제공합니다.

OKX 거래 플랫폼의 취급 수수료 목록 OKX 거래 플랫폼의 취급 수수료 목록 Feb 15, 2025 pm 03:09 PM

OKX Trading Platform은 거래 수수료, 인출 수수료 및 금융 수수료를 포함하여 다양한 요금을 제공합니다. 현물 거래의 경우 거래량은 거래량 및 VIP 수준에 따라 다르며 "시장 제조업체 모델"을 채택합니다. 즉, 시장은 각 거래에 대해 낮은 취급 수수료를 청구합니다. 또한 OKX는 통화 표준 계약, USDT 계약 및 배송 계약을 포함한 다양한 선물 계약을 제공하며 각 계약의 수수료 구조도 다릅니다.

참깨 오픈 도어 로그인 등록 입구 게이트 .io 교환 등록 공식 웹 사이트 입구 참깨 오픈 도어 로그인 등록 입구 게이트 .io 교환 등록 공식 웹 사이트 입구 Mar 04, 2025 pm 04:51 PM

Gate.io (Sesame Open Door)는 세계 최고의 암호 화폐 거래 플랫폼입니다. 자습서는 계정 등록 및 로그인, KYC 인증, 화폐 및 디지털 통화 재충전, 거래 쌍 선택, 한도/시장 거래 주문 및 주문 및 거래 기록보기와 같은 단계를 다루고 Cryptocurrency 거래를 위해 GATE.IO 플랫폼을 신속하게 시작할 수 있도록 도와줍니다. 초보자이든 베테랑이든,이 튜토리얼에서 혜택을 받고 Gate.io 거래 기술을 쉽게 마스터 할 수 있습니다.

Gateio Exchange App Old 버전 Gateio Exchange App Old 버전 다운로드 채널 Gateio Exchange App Old 버전 Gateio Exchange App Old 버전 다운로드 채널 Mar 04, 2025 pm 11:36 PM

Gateio Exchange 앱은 공식, 제 3 자 애플리케이션 시장, 포럼 커뮤니티 및 기타 채널을 다루는 기존 버전의 채널을 다운로드합니다. 또한 기존 버전을 쉽게 얻고 새로운 버전 또는 장치 호환성을 사용하여 불편 함 문제를 해결하는 데 도움이됩니다.

Ouyi Exchange App 국내 다운로드 자습서 Ouyi Exchange App 국내 다운로드 자습서 Mar 21, 2025 pm 05:42 PM

이 기사는 중국의 Ouyi Okx 앱의 안전한 다운로드에 대한 자세한 안내서를 제공합니다. 국내 앱 스토어의 제한으로 인해 사용자는 OUYI OKX의 공식 웹 사이트를 통해 앱을 다운로드하거나 공식 웹 사이트에서 제공 한 QR 코드를 사용하여 스캔 및 다운로드하는 것이 좋습니다. 다운로드 프로세스 중에 공식 웹 사이트 주소를 확인하고 응용 프로그램 권한을 확인하고 설치 후 보안 스캔을 수행하며 2 요인 확인을 활성화하십시오. 사용하는 동안 현지 법률 및 규정을 따르고, 안전한 네트워크 환경을 사용하고, 계정 보안을 보호하고, 사기에 대해 경계하고, 합리적으로 투자하십시오. 이 기사는 참조 용이며 투자 조언은 자신의 위험에 처해 있습니다.

See all articles