微信小程序-自定义组件的使用

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

自定义组件-基本使用

1.使用步骤

  1. 创建组件
  2. 注册组件
  3. 使用组件
    组件使用页面wxml:,微信小程序,小程序,前端
    1创建组件
    通常将项目中的组件都放在一个独立的目录下,并且一般就给这个文件夹取名为:components 。
    组件使用页面wxml:,微信小程序,小程序,前端
    右键点击MyTest,点击新建Component,填写组件名之后会自动创建4个同名的文件.

注意:
组件和页面的结构是一致的,但也是有区别:
组件的配置文件(.json文件)中,有一个配置项:component: true
组件的 .js 文件中调用 Component 函数,页面的.js文件中调用Page函数

2.注册(分为 页面注册 和 全局注册)
● 页面注册是在使用组件的页面配置(xxxx.json)中通过 usingComponents 进行注册,只能在当前页面中使用该组件
● 全局注册是在 app.json 文件中通过 usingComponents 对自定义组件进行注册,注册的组件可以任意页面中使用全局注册的组件

"usingComponents": {
    "my-test": "/components/MyTest/index"
}

3.使用
在wxml中,直接通过标签的方式使用即可。

自定义组件-组件样式

目标
掌握组件样式的编写注意点及组件样式隔离解决方案

内容

  1. 组件中的样式不要使用标签选择器
  2. 组件中,样式默认是隔离的: 自定义组件的样式只受到自定义组件 wxss 的影响
  3. 通过对组件的配置,可以取消这个隔离的状态

样式隔离注意点
● app.wxss中的全局样式对组件无效
● 只有class选择器具有样式隔离效果,id选择器、属性选择器、标签选择器不受样式隔离的影响

建议:在组件和引用组件的页面中建议使用class选择器,不要使用id、属性、标签选择器

修改组件样式的隔离选项
默认情况下,自定义组件的样式隔离特性能够防止组件内外样式互相干扰的问题。为了使外界能够控制组件内部的样式,就需要在组件的.js文件中设置如下:

Component({
  options: {
    addGlobalClass: true
  }
})

组件样式-外部样式类

引入别人开发的组件时,如何去修改这个组件的样式呢?
外部样式类:组件希望接受外部传入的样式类。此时可以在 Component 中用 externalClasses 定义若干个外部样式类。
组件使用页面wxml:,微信小程序,小程序,前端

自定义组件—数据方法

组件的结构:

// borderImage.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    
  },

  /**
   * 组件的初始数据
   */
  data: {
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    
  }
})

自定义组件插槽

什么是插槽?
在自定义组件的wxml结构中,我们可以提供一个节点,用于承载组件使用者提供的wxml结构。插槽可以方便开发者将不确定的、或者希望由用户去确定的交给用户去处理。

如:自己封装的弹框组件底部不确定用户会放一个按钮还是两个按钮,就可以放入插槽,交给用户自己定。

在小程序中,默认情况下每个自定义组件中只允许使用一个插槽进行占位。需要使用多 slot 时,可以在组件 .js(不是在配置文件中) 中声明启用。

Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多 slot 支持
  },
  // ... 省略其他
})

1.定义插槽

<view>
  <text>components/MyTest2/index.wxml</text>
  <!-- 对于不确定的内容,可以使用slot进行占位,具体内容交给使用者确定 -->
  <!-- <slot></slot> -->
  <slot name="before"></slot>
  <view>
    ---------这里是分割线--------
  </view>
  <slot name="after"></slot>
</view>

2.使用组件

<my-test2>
  <!-- 这里的内容将被放到组件中<slot>的位置 -->
  <!-- <view>
    这里是slot里的内容
  </view> -->
  <view slot="before">
    这里是before slot里的内容
  </view>
  <view slot="after">
    这里是after slot里的内容
  </view>
</my-test2>

自定义组件—生命周期(lifetimes)

组件的生命周期,是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。
组件使用页面wxml:,微信小程序,小程序,前端
案列
背景
整个小程序中,全局配置中不启用自定义navBar,而在某个页面中使用自定义的navBar,此时,navBar默认会出现在页面的最顶部,如果需要正常显示出来,需要向下移动。
那具体要移动多少呢?不同的机型是不同的。
思路:
在组件的生命钩子函数中,调用wx的getSystemInfoSync,拿到当前设备下,需要空出的距离,然后,就可以设置具体的下移距离啦。
组件使用页面wxml:,微信小程序,小程序,前端

自定义组件-属性

在小程序中,properties是组件的对外属性,用于接收外界传递到组件中的数据
1.定义属性
组件使用页面wxml:,微信小程序,小程序,前端

2.从父组件中传入属性值
组件使用页面wxml:,微信小程序,小程序,前端

自定义组件-组件通讯-自定义事件triggerEvent

目标
掌握从组件内部通知父组件的方式
组件使用页面wxml:,微信小程序,小程序,前端文章来源地址https://www.toymoban.com/news/detail-770068.html

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

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

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

相关文章

  • 微信小程序入门与实战之电影页面与实战自定义组件

    Movie自定义组件包含三部分:图片、标题和图片,评分可以再单独写一个组件。 实现代码: css代码中我们通过title里面的属性设置文字省略效果,为了能够直观地感受到效果我们必须给container设置宽度,当文字超过宽度的时候就会显示省略号,效果如下图所示: 首先在自定义

    2024年02月08日
    浏览(51)
  • uniapp 微信小程序 纯js文件中引入自定义modal组件(无需所有页面手动引入组件)

    工具:uniapp 开发端:微信小程序 其他:uview 2.0 场景:接口请求统一封装中需要对接口返回token失效的情况做modal显示,引导用户退出小程序,我的想法是将modal的默认confirm按钮替换成小程序自带的退出方法: 这样用户点击确认按钮就能退出小程序,因此uni.showModel不满足需求

    2024年02月09日
    浏览(69)
  • 微信小程序踩坑之wxml中有内容,但是页面上不显示

    1,先检查app.json中页面引入的路径正确与否   2,检查当前wxml文件对应的js文件是否为空,如果为空就要加上默认的代码(没有js的处理逻辑,当前的js文件也不能为空),这样问题就解决了 ​​​​​​​      

    2024年02月11日
    浏览(96)
  • ts版本微信小程序在wxml保存文件不刷新页面的解决办法

    将project.config.json中的skylineRenderEnable改为false

    2024年03月18日
    浏览(58)
  • 微信小程序-自定义组件的使用

    1.使用步骤 创建组件 注册组件 使用组件 1创建组件 通常将项目中的组件都放在一个独立的目录下,并且一般就给这个文件夹取名为:components 。 右键点击MyTest,点击新建Component,填写组件名之后会自动创建4个同名的文件. 注意: 组件和页面的结构是一致的,但也是有区别: 组件

    2024年02月03日
    浏览(59)
  • 【微信小程序】wxml模板的使用

    目录 一,wxml模板 1.什么是 WXML 2. 什么是 WXSS 3.WXSS 和 CSS 的区别 4 .JS 逻辑交互 二,小程序的宿主环境 1.宿主环境简介 1.什么是宿主环境 2. 小程序的宿主环境 3.宿主环境包含内容 2 通信模型

    2024年02月04日
    浏览(52)
  • 微信小程序wxml使用过滤器

    如何在微信小程序wxml使用过滤器/格式化字串?(常用就是格式化字符串) 犹如Angular使用pipe管道(过滤器)这样子方便,用的最多就是时间格式化。 下面是实现时间格式化的方法和步骤: 插入代码: 在 wxml 中使用

    2024年02月07日
    浏览(48)
  • 《微信小程序》在wxml中使用函数

    在wxml中使用函数有两种方法 方法一:在wxml中直接添加模块,就可以在wxml中直接引用,举个例子 方法二:新建wxs文件,在文件中写入函数,举个例子

    2024年02月16日
    浏览(46)
  • 微信小程序在data中定义页面的数据,以及数据如何使用

    以上代码是一个小程序页面的示例代码,使用了 Page() 方法来定义页面组件。在该页面组件中,定义了一个名为 data 的对象,该对象中包含两个属性: info :表示一个字符串类型的数据,其初始值为 \\\'init data\\\' 。 msgList :表示一个数组类型的数据,其初始值为 [{msg: \\\'hello\\\'}, {ms

    2024年02月04日
    浏览(51)
  • 微信小程序:如何在{{}}中使用函数?WXML+WXS

    在原生小程序的项目中或有这种需求,就是在wxml页面中调用方法 但是微信原生小程序 无法直接使用像vue里面的计算属性,监听啦啥的这种,也不能调用js中的方法。  既然{{}}中无法调用js中的函数,那该怎么办呢? 微信提出了一种新的概念,WXS(WeiXin Script) ,小程序的一套脚

    2024年02月16日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包