【6 微信小程序学习 - 小程序的组件化开发,通信】

news2024/11/27 19:52:10

1 小程序组件化开发

在这里插入图片描述

2 创建一个组件

1 创建

1,在根目录创建components文件夹,自定义组件都放在此处
2,右键新建component,输入名称后悔创建四个文件
3.其中.json中的"component": true,表示这是一个组件
4,编写代码,和其他代码逻辑相同

在这里插入图片描述

2 使用

1,要使用组件的父组件的json配置文件,usingComponents字段注册组件,组件名称:组件路径

{
  "usingComponents": {
    "section-info": "/components/section-info/section-info",
  }
}
wxml中使用组件
<section-info />

使用自定义组件和细节注意事项

在这里插入图片描述

组件的样式细节

1 外部使用了标签选择器,会对组件内产生影响,所以建议不要使用标签选择器
2 自定义组件之间样式默认是隔离的,要使父组件和子组件的样式互相影响(比如使用统一类名设置样式),要在父组件.js中使用styleIsolation属性,

在这里插入图片描述

Component({
  options: {
    styleIsolation: "shared"
  }
})

3 组件的通信

在这里插入图片描述

1 父传子properties

1 父组件创建子组件时传递数据.wxml

<!-- 2.自定义组件 section-info -->
<section-info 
  title="我与地坛" 
  content="要是有些事情我没说, 别以为是我忘记了"
/>

2 子组件接收数据.js
properties,title是传递时的标识, type是接收类型,value是接收的值
可以通过value设置默认值;

Component({
  properties: {
    title: {
      type: String,
      value: "默认标题"
    },
    content: {
      type: String,
      value: "默认内容"
    }
  },

3 组件向外传递事件 – 自定义事件(通知)

自定义事件->triggerEvent发出事件和数据
组件的自定义事件在.js中定义,和页面不同的是,需要在methods:中定义

1 组件发射事件,事件名是titleclick,数据是aaa

methods: {
//点击触发自定义事件
    onTitleTap() {
      console.log("title被点击了~");
      //发出事件和数据(事件名称.事件数据)
      this.triggerEvent("titleclick", "aaa")
    }
  }

2 其他页面或者组件接收事件
通过事件绑定,接收自定义事件

//.wxml文件中绑定自定义事件
<section-info 
//bind:自定义事件名="接收组件执行的事件名"
  bind:titleclick="onSectionTitleClick"
/>

3 接收组件执行的事件在.js中定义
获取传递的数据,通过event的获取,event.detail

onSectionTitleClick(event) {
    console.log("区域title发生了点击", event.detail);
  },

4 页面直接调用组件方法

this.selectComponent(.子组件名)
在这里插入图片描述

5 插槽

除了内容和样式可能由外界决定之外,也可能外界想决定显示的方式,插槽让使用者可以决定组件内部的一些内容到底展示什么。
比如按钮,图片,或者文字,或者没有.插槽依赖组件而存在

1 单个插槽的使用

1 在组件my-slot中使用插槽占位(预留插槽)

<view class="content">
    <!-- 小程序中插槽是不支持默认值的 -->
    <slot></slot>
  </view>

2 使用组件my-slot时,可以自定义插槽显示的组件

<my-slot>
  <button>我是按钮</button>
</my-slot>
<my-slot>
  <image src="/assets/nhlt.jpg" mode="widthFix"></image>
</my-slot>

多个插槽的使用

使用多个插槽时,需要给插槽一个名字作为标识

1 定义多个有标识的插槽

//启用多插槽
Component({
  options: {
    multipleSlots: true
  }
})

//多插槽要些名称
<view class="mul-slot">
  <view class="left">
    <slot name="left"></slot>
  </view>
  <view class="center">
    <slot name="center"></slot>
  </view>
  <view class="right">
    <slot name="right"></slot>
  </view>
</view>

//其他组件使用多插槽要  slot="left" 指定标识

  <button slot="left" size="mini">left</button>
  <view slot="center">哈哈哈</view>
  <button slot="right" size="mini">right</button>

6 共享数据与函数 behaviors 单独的JS文件

导出才能使用 export const counter = Behavior
在这里插入图片描述

7 Component构造器的可选配置

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1:操作系统导论

1.1操作系统的定义 •Anoperatingsystemactsanintermediarybetweenuserofacomputerandthecomputer hardware. ◦ 操作系统充当计算机⽤⼾和计算机硬件之间的中介 •Thepurposeofanoperatingsystemistoprovideanenvironmentinwhichausercanexecute programsinaconvenientandeff…

小红书平台,“松弛感”生活十大趋势报告出炉

放眼时尚、教育、情感、职场等各大领域&#xff0c;继氛围感、仪式感、精致感后&#xff0c;今年都在谈论一个词——松弛感。包括现下轻户外、轻运动、轻解压等风口&#xff0c;也都呼应着年轻人对松弛感的追求。 千瓜数据显示&#xff0c;2023年1月-5月&#xff0c;“松弛感”…

Vue全局事件总线简明笔记

1、作用&#xff1a; 全局事件总线是一种组件间通信的方式&#xff0c;并不是插件&#xff0c;适用于任意组件间通信、实现组件间的通信。 让所有的组件都能访问得到全局事件总线&#xff0c;那么创建的思路就是&#xff0c;全局事件总线一定要让VC或者VM访问得到。 结合组件的…

leetcode24. 两两交换链表中的节点(java)

两两交换链表中的节点 leetcode24. 两两交换链表中的节点題目描述 迭代法.解题思路代码演示 递归法解题思路代码演示 二叉树专题 leetcode24. 两两交换链表中的节点 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/swap-…

全志V3S嵌入式驱动开发(看门狗驱动)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 大家如果做过工业级别的嵌入式设备&#xff0c;那么对看门狗应该不陌生。很多工业级的设备&#xff0c;其应用环境很多时候是非常糟糕的&#xff0…

抖音seo矩阵系统源码开发及部署配置文档分享

一、开发要求及实现流程 &#xff1a;Scope: video.create 需要申请权限 需要用户授权 该接口用于上传视频文件到文件服务器&#xff0c;获取视频文件video_id&#xff08;该 ID 为加密后的 ID&#xff09;。该接口适用于抖音。 注意&#xff1a; 抖音的OAuth API以https://…

阿里云弹性公网ip(EIP)是什么?eip详细介绍

阿里云eip是什么&#xff1f;阿里云百科分享弹性公网IP详细介绍&#xff0c;阿里云弹性公网EIP是什么意思&#xff1f;EIP是可以独立持有的公网IP地址&#xff0c;EIP可以和阿里云专有网络VPC类型的云服务器ECS、NAT网关、ENI网卡、私网负载均衡SLB等绑定&#xff0c;通过EIP可…

chatgpt赋能python:Python是什么

Python是什么 Python是一门高级编程语言&#xff0c;由Guido van Rossum于1991年发明并开发。它具有简单易学、可读性强、跨平台等特点&#xff0c;在Web开发、数据分析、机器学习等领域广泛应用。 Python的文档 Python的文档非常全面&#xff0c;包括官方文档、第三方文档、…

SimSwap复现指引及代码分析【2023有更新】

SimSwap复现指引及代码分析【2023有更新】 0、前言1、复现指引环境配置指引Inference for image or video face swappingInference参数解析Inference用法示例图像视频 2、结果分析3、代码分析 0、前言 论文讲解在&#xff1a;https://blog.csdn.net/qq_45934285/article/detail…

33、js - 事件循环 微任务 宏任务

1、事件循环♻️&#xff08;EventLoop&#xff09; js是单线程语言&#xff0c;也就是某一刻只能执行一行代码&#xff0c;为了让耗时代码不阻塞其他代码运行&#xff0c;设计了事件循环模型。 事件循环是一个并发模型&#xff0c;负责执行代码、收集异步任务的模型&#xff0…

容器(第四篇)创建镜像-dockerfile

创建镜像有三种方法&#xff0c;分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。 基于现有镜像创建&#xff1a; ①先使用现有镜像创建容器 docker run ②再进入容器进行内容更新 docker exec ③最后提交成新的镜像 docker commit 或 docker…

Linux远程管理工具(PuTTY和SecureCRT)

通过《Linux远程管理协议》一节可以知道&#xff0c;Linux远程管理服务器多基于 SSH 协议。本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具&#xff0c;分别是 PuTTY 和 SecureCRT。 在使用远程管理工具之前&#xff0c;应先设置宿主机 Windows 与虚拟机 Linux 能够连…

mysql 联合查询

mysql联合查询 联合查询&#xff1a;union&#xff0c;将多次查询(多条select语句)的结果&#xff0c;在字段数相同的情况下&#xff0c;在记录的层次上进行拼接。 基本语法 联合查询由多条select语句构成&#xff0c;每条select语句获取的字段数相同&#xff0c;但与字段类…

Seata介绍、原理、配置

目录 介绍&#xff1a; 核心组件&#xff1a; 原理&#xff1a; Seata 会有 4 种分布式事务解决方案&#xff0c;分别是 AT 模式、TCC 模式、Saga 模式和 XA 模式 AT模式原理&#xff1a; 一阶段&#xff1a; 二阶段提交&#xff1a; 二阶段回滚&#xff1a; Seata配置…

【轨迹跟踪】基于自适应跟踪(EAT)方法的无人机/移动机器人轨迹跟踪(MatlabSimulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

随着信息技术的快速发展,编程已经成为一个越来越重要的技能。那么,我们该如何入门编程呢?

*随着信息技术的快速发展&#xff0c;编程已经成为一个越来越重要的技能。那么&#xff0c;我们该如何入门编程呢&#xff1f; 一、自学编程需要注意什么&#xff1f; 自学编程需要注意以下几点&#xff1a; 设定清晰的学习目标&#xff1a;在开始学习编程前&#xff0c;你需…

chatgpt赋能python:Python在485读电表方面的应用

Python在485读电表方面的应用 介绍 近年来&#xff0c;随着智能电网和智慧城市的不断发展&#xff0c;越来越多的城市和企事业单位开始关注能源消费情况并采取有效管理手段&#xff0c;实现节能减排。而想要实现对能源消费情况的监测和控制&#xff0c;就需要能够对电表进行读…

Docker数据管理和网络通信

Docker 的数据管理 管理 Docker 容器中数据主要有两种方式&#xff1a;数据卷&#xff08;Data Volumes&#xff09;和数据卷容器&#xff08;DataVolumes Containers&#xff09;。 1&#xff0e;数据卷 数据卷是一个供容器使用的特殊目录&#xff0c;位于容器中。可将宿主机…

MQTT协议基本讲解(结合netty)

正文 前提MQTT结构可变报文头&#xff08;Variable Header&#xff09;有效负荷&#xff08;payload&#xff09;固定报文头&#xff08;Fixed Header&#xff09;消息类型&#xff08;Message Type&#xff09;QoS级别标志&#xff08;0&#xff0c;1&#xff0c;2&#xff09…

Spring Cloud OpenFeign源码解析,代理的魅力一展无遗

文章目录 一、OpenFeign简介二、OpenFeign中Bean的动态装载1、EnableFeignClients2、registerFeignClients3、FeignClientFactoryBean.getObject4、loadBalance5、DefaultTarget.target6、ReflectiveFeign.newInstance生成代理&#xff08;1&#xff09;targetToHandlersByName…