国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table of Contents
1. Slot
2. Father and son Component communication
Home WeChat Applet Mini Program Development A brief analysis of several ways of communicating between slots and parent-child components in mini programs

A brief analysis of several ways of communicating between slots and parent-child components in mini programs

Nov 02, 2021 am 09:57 AM
Applets WeChat slot Parent-child component communication

This 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!

A brief analysis of several ways of communicating between slots and parent-child components in mini programs

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

A brief analysis of several ways of communicating between slots and parent-child components in mini programs

#In fact, the slot, to put it more simply, is the process of

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 component

slot 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.
The code is as follows (example):

<!-- 組件的封裝者 -->
<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

The code is as follows (example):

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

The code is as follows (example):

<!-- 組件模板 -->
<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.
The code is as follows (example):

// 父組件的 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
The subcomponent declares the corresponding properties in the properties node and uses The code is as follows (example):

// 子組件的 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 calling this.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
  • The code is as follows (example):
// 父組件中定義 syncCount 方法
// 將來,這個(gè)方法會被傳遞給子組件,供子組件進(jìn)行調(diào)用
syncCount() {
  console.log(&#39;syncCount&#39;)
},

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
  • The code is as follows (example):
<!-- 使用 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 calling this.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(&#39;sync&#39;, {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)簽選擇器 &#39;my-test3&#39;,不然返回的是 null
  const child = this.selectComponent(&#39;.customA&#39;) // 也可以傳遞 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Is the company's security software causing the application to fail to run? How to troubleshoot and solve it? Is the company's security software causing the application to fail to run? How to troubleshoot and solve it? Apr 19, 2025 pm 04:51 PM

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. ...

What is the difference between H5 page production and WeChat applets What is the difference between H5 page production and WeChat applets Apr 05, 2025 pm 11:51 PM

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.

The difference between H5 and mini-programs and APPs The difference between H5 and mini-programs and APPs Apr 06, 2025 am 10:42 AM

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.

What are the development tools for H5 and mini program? What are the development tools for H5 and mini program? Apr 06, 2025 am 09:54 AM

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.

How to choose H5 and applets How to choose H5 and applets Apr 06, 2025 am 10:51 AM

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.

What are the different ways of promoting H5 and mini programs? What are the different ways of promoting H5 and mini programs? Apr 06, 2025 am 11:03 AM

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 latest news APP ranking recommendation in the currency circle (authoritative release in 2025) The latest news APP ranking recommendation in the currency circle (authoritative release in 2025) Apr 21, 2025 pm 09:33 PM

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

TikTok web version entrance login link address https TikTok web version entrance website free TikTok web version entrance login link address https TikTok web version entrance website free May 22, 2025 pm 04:24 PM

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.

See all articles