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

这篇具有很好参考价值的文章主要介绍了【6 微信小程序学习 - 小程序的组件化开发,通信】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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构造器的可选配置

微信小程序开发,微信小程序学习笔记,微信小程序,小程序,学习
微信小程序开发,微信小程序学习笔记,微信小程序,小程序,学习文章来源地址https://www.toymoban.com/news/detail-544816.html

到了这里,关于【6 微信小程序学习 - 小程序的组件化开发,通信】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序基础学习(组件化)

            找到components文件夹下面创建新的文件夹         然后再文件夹内创建component格式的文件         创建后这样          我创建的是my-info的文件夹以及my-info的components文件,跟着普通的页面一样          找到你需要使用组件的json文件中注册组件即可

    2024年02月01日
    浏览(36)
  • Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。

    1.1 单工程项目结构 一般我们都是一个业务建一个包 缺点: 各种业务代码混杂在同一个模块里,开发人员在开发、调测过程的效率越来越低,定位某个业务问题,需要在多个业务代码混合的模块中寻找和跳转。 需要了解各个业务的功能,避免代码的改动影响其它业务的功能

    2024年02月10日
    浏览(52)
  • 组件化开发之如何封装组件-react

    组件是构建用户界面的基本单元,它是一个独立的、可重用的、可组合的代码单元,用于表示UI的一部分。 人话:当谈论组件时,就像在搭积木一样,每个组件都是一个 独立的、可以重复使用 的代码块,用来构建网页或应用的各个部分。比如界面的布局,像按钮、文本输入

    2024年02月11日
    浏览(51)
  • Vue组件化开发--公共组件的封装

    目录 为什么要封装组件 应用场景 vue自己封装组件(局部、全局)  Vue组件的三要素 ①全局组件 1)方式:  2)示例: ②局部组件 1)方式: 2)示例: 命名规范:(注意) 脚手架vue-cli中的组件 父传子(props) 通过 $on 传递父组件方法 $parent获取父组件然后使用父组件中的

    2024年02月05日
    浏览(50)
  • 组件化开发复习

    createApp 函数传入了一个对象 App ,这个对象其实本质上就是一个组件,也是我们应用程序的根组件 可以写为:  我们先来学习一下全局组件的注册:  全局组件需要使用我们全局创建的 app 来注册组件;  通过 component 方法传入组件名称、组件对象即可注册一个全局组件了;

    2024年02月15日
    浏览(45)
  • Vue 组件化开发

    提示:这里可以添加本文要记录的大概内容: Vue.js 是一种现代化的前端框架,可以用于构建可复用的组件化应用程序。Vue.js 提供了一种基于组件的架构,使得开发人员可以将应用程序分解为多个可重用的组件。 Vue.js 组件是一个可复用的代码模块,可以在 Vue.js 应用程序中使

    2024年02月15日
    浏览(41)
  • react组件化开发详解

    React是一个流行的JavaScript库,用于构建用户界面,并且以组件化的方式进行开发。下面将详解React组件化开发的概念和步骤: 组件化思维: 组件化开发是将复杂的用户界面划分为独立、可重用的小部件(组件)。每个组件负责处理自己的逻辑和渲染,可以嵌套和组合其他组件

    2024年02月12日
    浏览(39)
  • Vue开发实战(03)-组件化开发

    对组件功能的封装,可以像搭积木一样开发网页。 Vue官方的示例图对组件化开发的形象展示。左边是一个网页,可以按照功能模块抽象成很多组件,这些组件就像积木一样拼接成网页。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aS7Zk8tp-16862

    2024年02月08日
    浏览(87)
  • HarmonyOS开发:探索组件化模式开发

    组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件化,之前有比较系统的总结过相关文章,感兴趣的朋友,可以查看,点击直达;与Android端的组件化相比,HarmonyOS的组件化可以说实现起来就颇费一番周折,

    2024年02月08日
    浏览(33)
  • 【Vue】Vite 组件化开发

    1. 什么是组件化开发 组件化开发指的是:根据封装的思想,把页面上可重用的部分封装为组件,从而方便项目的开发和维护。 例如:https://gitee.com/vdpadmin/variant-form 所展示的效果,就契合了组件化开发的思想。用户可以通过拖拽组件的方式,快速生成一个页面的布局结构。

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包