


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>這里是組件的內(nèi)部節(jié)點(diǎn)</view> <!-- 對于不確定的內(nèi)容,可以使用<slot>進(jìn)行占位,具體的內(nèi)容由組件的使用者決定 --> <slot></slot> </view> <!-- 組件的使用者 --> <component-tag-name> <!-- 這部分內(nèi)容將被放置在組件<slot>的位置上 --> <view>這里是插入到組件slot的內(nèi)容</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 // 在組件定義時(shí)的選項(xiàng)中啟用多 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 的第一個(gè) slot 插槽 --> <slot name="before"></slot> <view>這是一段固定的文本內(nèi)容</view> <!-- name 為 after 的第二個(gè) 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é)點(diǎn) data: { count: 0 } // 父組件的wxml 結(jié)構(gòu) <my-test3 count="{{count}}"></my-test3> <view>~~</view> <view>父組件中,count值為:{{count}}</view>
- Accept data
// 子組件的 properties 節(jié)點(diǎn) properties: { count: Number } // 子組件的 wxml 結(jié)構(gòu) <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 方法 // 將來,這個(gè)方法會被傳遞給子組件,供子組件進(jìn)行調(diào)用 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: 自定義事件名稱(推薦:結(jié)構(gòu)清晰) --> <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結(jié)構(gòu) <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 獲取組件實(shí)例
父組件如何獲得子組件實(shí)例?
可在父組件里調(diào)用 this.selectComponent("id或class選擇器")
,獲取子組件的實(shí)例對象,從而直接訪問子組件的任意數(shù)據(jù)和方法。調(diào)用時(shí)需要傳入一個(gè)選擇器
,例如 this.selectComponent(".my-component")
代碼如下(示例):
// wxml結(jié)構(gòu) <my-test3 count="{{count}}" bind:sync="syncCount" class="customA" id="cA"></my-test3> <button bindtap="getChild">獲取子組件實(shí)例</button> getChild() { // 按鈕的tap事件處理函數(shù) // 切記下面參數(shù)不能傳遞標(biāo)簽選擇器 'my-test3',不然返回的是 null const child = this.selectComponent('.customA') // 也可以傳遞 id 選擇器 #cA child.setData({ count: child.properties.count + 1 }) // 調(diào)用子組件的 setData 方法 child.addCount() // 調(diào)用子組件的 addCount 方法 }
更多編程相關(guān)知識,請?jiān)L問:編程入門??!
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

Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

H5 is more flexible and customizable, but requires skilled technology; mini programs are quick to get started and easy to maintain, but are limited by the WeChat framework.

H5. The main difference between mini programs and APP is: technical architecture: H5 is based on web technology, and mini programs and APP are independent applications. Experience and functions: H5 is light and easy to use, with limited functions; mini programs are lightweight and have good interactiveness; APPs are powerful and have smooth experience. Compatibility: H5 is cross-platform compatible, applets and APPs are restricted by the platform. Development cost: H5 has low development cost, medium mini programs, and highest APP. Applicable scenarios: H5 is suitable for information display, applets are suitable for lightweight applications, and APPs are suitable for complex functions.

H5 development tools recommendations: VSCode, WebStorm, Atom, Brackets, Sublime Text; Mini Program Development Tools: WeChat Developer Tools, Alipay Mini Program Developer Tools, Baidu Smart Mini Program IDE, Toutiao Mini Program Developer Tools, Taro.

The choice of H5 and applet depends on the requirements. For applications with cross-platform, rapid development and high scalability, choose H5; for applications with native experience, rich functions and platform dependencies, choose applets.

There are differences in the promotion methods of H5 and mini programs: platform dependence: H5 depends on the browser, and mini programs rely on specific platforms (such as WeChat). User experience: The H5 experience is poor, and the mini program provides a smooth experience similar to native applications. Communication method: H5 is spread through links, and mini programs are shared or searched through the platform. H5 promotion methods: social sharing, email marketing, QR code, SEO, paid advertising. Mini program promotion methods: platform promotion, social sharing, offline promotion, ASO, cooperation with other platforms.

The best cryptocurrency trading and analysis platforms include: 1. OKX: the world's number one in trading volume, supports multiple transactions, provides AI market analysis and on-chain data monitoring. 2. Binance: The world's largest exchange, providing in-depth market conditions and new currency first-time offerings. 3. Sesame Open Door: Known for spot trading and OTC channels, it provides automated trading strategies. 4. CoinMarketCap: an authoritative market data platform, covering 20,000 currencies. 5. CoinGecko: Known for community sentiment analysis, it provides DeFi and NFT trend monitoring. 6. Non-small account: a domestic market platform, providing analysis of linkage between A-shares and currency markets. 7. On-chain Finance: Focus on blockchain news and update in-depth reports every day. 8. Golden Finance: 24 small

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.
