


A brief analysis of several ways of communicating between slots and parent-child components in mini programs
Nov 02, 2021 am 09:57 AMThis article will introduce to you the slots in the WeChat applet and several methods of parent-child component communication. I hope it will be helpful to you!
Today we will take a look at the communication between slots and parent-child components in the mini program, and see what the differences are with vue? [Related learning recommendations: 小program development tutorial]
1. Slot
1. What is a slot ?
In the wxml
structure of a custom component, a node (slot) can be provided to host the wxml## provided by the component user. # Structure
the sub-component digging the hole and the parent component filling the hole . When the parent component uses the child component, it determines some layout display inside the child component
- The child component fills the hole by digging holes
- The parent component fills the hole through the content in the middle of the component tag
2. Single slot
In the applet, by default only one is allowed in each custom componentslot Placeholder, this limit on the number is called a single slot
- By default, there can only be one
- in a component's
wxml
slot When you need to use multiple - slot
, you can declare the enablement
in the component
js - Note: small Currently, there are only default slots and multiple slots in the program. Scope slots are not supported at the moment.
<!-- 組件的封裝者 --> <view class="wrapper"> <view>這里是組件的內部節(jié)點</view> <!-- 對于不確定的內容,可以使用<slot>進行占位,具體的內容由組件的使用者決定 --> <slot></slot> </view> <!-- 組件的使用者 --> <component-tag-name> <!-- 這部分內容將被放置在組件<slot>的位置上 --> <view>這里是插入到組件slot的內容</view> </component-tag-name>
3. Start multiple slots
In the custom component of the applet, when you need to use multiple slots, you can in the .js
file of the component
Component({ options: { multipleSlots: true // 在組件定義時的選項中啟用多 slot 支持 }, properties: { /* ... */ }, methods: { /* ... */ } })
4. Define multiple slots
Can be in the component's.wxml Use multiple tags in to distinguish different slots with different
name
<!-- 組件模板 --> <view class="wrapper"> <!-- name 為 before 的第一個 slot 插槽 --> <slot name="before"></slot> <view>這是一段固定的文本內容</view> <!-- name 為 after 的第二個 slot 插槽 --> <slot name="after"></slot> </view>
2. Father and son Component communication
1. Parent-child component communication
- Property binding
Used for parent components to set data to specified properties of child components. Only
JSON
compatible data can be set (only data can be passed, methods cannot be passed)
- Event binding Certainly Used for child components to pass data to parent components. You can pass any data (including arrays and methods)
- Get the component instance
The parent component can also obtain the child component instance object through
this.selectComponent()
so that it can directly access any data and methods of the child component
2. Attribute binding
- #Transfer data
Property binding is used to transfer values ????from parent to child, and can only pass common types of data. Methods cannot be passed to child components.
// 父組件的 data 節(jié)點 data: { count: 0 } // 父組件的wxml 結構 <my-test3 count="{{count}}"></my-test3> <view>~~</view> <view>父組件中,count值為:{{count}}</view>
- Accept data
// 子組件的 properties 節(jié)點 properties: { count: Number } // 子組件的 wxml 結構 <text>子組件中,count值為:{{count}}</text>
3. The core implementation steps of event binding
Event binding is used to realize the transmission from child to parent Value, any type of data can be passed. The usage steps are as follows:- In
- js
of
parent component, define a function, which will be passed to the child component in the form of a custom event
In - wxml
of the
parent component, pass the function reference defined in step 1 to the child component
## in the form of a custom event #In js - of
subcomponent
, by callingthis.triggerEvent('custom event name', {/* parameter object*/})
, Data is sent to the parent componentIn the
js - of the parent component, the data passed by the child component is obtained through
e.detail
4. The core implementation code of event binding
Step 1: In the- js
- of the parent component, define a function , this function will be passed to the child component in the form of a custom event
// 父組件中定義 syncCount 方法 // 將來,這個方法會被傳遞給子組件,供子組件進行調用 syncCount() { console.log('syncCount') },Step 2: In the parent component's
- In wxml
- , pass the function reference defined in step 1 to the sub-component in the form of a custom event
<!-- 使用 bind: 自定義事件名稱(推薦:結構清晰) --> <my-test3 count="{{count}}" bind:sync="syncCount"></my-test3> <!-- 或在 bind 后面直接協(xié)商自定義事件名稱 --> <my-test3 count="{{count}}" bindsync="syncCount"></my-test3>Step 3: In
- js
- of
subcomponent
, by callingthis.triggerEvent('custom event name', {/* parameter object*/})
, send data to the parent component The code is as follows (example):
// 子組件的wxml結構 <text>子組件中,count值為:{{count}}</text> <button type="primary" bindtap="addCount">+1</button> // 子組件中的 js 代碼 methods: { addCount() { this.setData({ count: this.properties.count + 1 }) this.triggerEvent('sync', {value: this.properties.count}) } }
- 步驟 4:在父組件的
js
中,通過e.detail
獲取到子組件傳遞過來的數(shù)據(jù)
代碼如下(示例):
syncCount(e) { // console.log(e.detail.value) this.setData({ count: e.detail.value }) }
5. 使用 selectComponent 獲取組件實例
父組件如何獲得子組件實例?
可在父組件里調用 this.selectComponent("id或class選擇器")
,獲取子組件的實例對象,從而直接訪問子組件的任意數(shù)據(jù)和方法。調用時需要傳入一個選擇器
,例如 this.selectComponent(".my-component")
代碼如下(示例):
// wxml結構 <my-test3 count="{{count}}" bind:sync="syncCount" class="customA" id="cA"></my-test3> <button bindtap="getChild">獲取子組件實例</button> getChild() { // 按鈕的tap事件處理函數(shù) // 切記下面參數(shù)不能傳遞標簽選擇器 'my-test3',不然返回的是 null const child = this.selectComponent('.customA') // 也可以傳遞 id 選擇器 #cA child.setData({ count: child.properties.count + 1 }) // 調用子組件的 setData 方法 child.addCount() // 調用子組件的 addCount 方法 }
更多編程相關知識,請訪問:編程入門??!
The above is the detailed content of A brief analysis of several ways of communicating between slots and parent-child components in mini programs. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The login portal for the Douyin web version is https://www.douyin.com/. The login steps include: 1. Open the browser; 2. Enter the URL https://www.douyin.com/; 3. Click the "Login" button and select the login method; 4. Enter the account password; 5. Complete login. The web version provides functions such as browsing, searching, interaction, uploading videos and personal homepage management, and has advantages such as large-screen experience, multi-tasking, convenient account management and data statistics.

Binance C2C transactions allow users to buy and sell cryptocurrencies directly, and pay attention to the risks of counterparty, payment and price fluctuations. Choosing high-credit users and secure payment methods can reduce risks.

Copying comics is undoubtedly a treasure that cannot be missed. Here you can find basketball comics in various styles, from passionate and inspiring competitive stories to relaxed and humorous daily comedy. Whether you want to relive the classics or discover new works, copying comics can meet your needs. Through the authentic online reading portal provided by copy comics, you will bid farewell to the trouble of pirated resources, enjoy a high-definition and smooth reading experience, and can support your favorite comic authors and contribute to the development of authentic comics.

Choosing UC browser or QQ browser depends on your needs: 1. UC browser is suitable for users who pursue fast loading and rich entertainment functions; 2. QQ browser is suitable for users who need stability and seamless connection with Tencent products.

Combining the latest industry trends and multi-dimensional evaluation data in 2025, the following are the top ten comprehensive AI writing software recommendations, covering mainstream scenarios such as general creation, academic research, and commercial marketing, while taking into account Chinese optimization and localization services:

Nice Comics, an immersive reading experience platform dedicated to creating for comic lovers, brings together a large number of high-quality comic resources at home and abroad. It is not only a comic reading platform, but also a community that connects comic artists and readers and shares comic culture. Through simple and intuitive interface design and powerful search functions, NES Comics allows you to easily find your favorite works and enjoy a smooth and comfortable reading experience. Say goodbye to the long waiting and tedious operations, enter the world of Nice comics immediately and start your comic journey!

Frogman Comics has become the first choice for many comic lovers with its rich and diverse comic resources and convenient and smooth online reading experience. It is like a vibrant pond, with fresh and interesting stories constantly emerging, waiting for you to discover and explore. Frog Man comics cover a variety of subjects, from passionate adventures to sweet love, from fantasy and science fiction to suspense reasoning, no matter which genre you like, you can find your favorite works here. Its simple and intuitive interface design allows you to easily get started, quickly find the comics you want to read, and immerse yourself in the exciting comic world.

Here, you can enjoy the vast ocean of comics and explore works of various themes and styles, from passionate young man comics to delicate and moving girl comics, from suspenseful and brain-burning mystery comics to relaxed and funny daily comics, there is everything, and there is always one that can touch your heartstrings. We not only have a large amount of genuine comic resources, but also constantly introduce and update the latest works to ensure that you can read your favorite comics as soon as possible.
