【微信小程序】自定义组件(一)

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

🎁写在前面:

观众老爷们好呀,这里是前端小刘不怕牛牛频道,小程序系列文章又更新了呀。

今天牛牛带来的是微信小程序的自定义组件入门知识,赶紧拿起小本本做笔记呀!

【微信小程序】自定义组件(一)

一,创建和引用


1.1 介绍

自定义组件,就是开发者将页面的某个功能模块抽象化并提取出来的代码块,支持复用,减少一定的代码量。

有了自定义组件,我们就可以将页面复杂的模块分解成几个低耦合的模块。低耦合就是说模块间的关联程度低,避免了过度依赖,利于代码维护等等。当多个页面需要一样的功能模块时,我们还可以封装一个自定义组件,只需要在各页面使用该组件即可。这样代码量是不是一下子减少好多,相当的nice。

1.2 创建自定义组件

自定义组件的创建,类似于页面的创建,也是由jsonwxmlwxssjs四个类型的文件组成

创建有以下两个步骤:

  1. 在项目的根目录下,创建一个components文件夹,用来存放我们的自定义组件代码
    伙伴们是不是觉得跟Vue的组件定义有点像,不过注意的是,vue定义组件只需要vue一个文件即可,而小程序的自定义组件一般来说可不止。
  2. components文件夹下创建一个自定义组件名字的空文件夹,鼠标移至新文件夹上方并右键,再次输入名字,按下回车,开发者工具就会帮你自动生成需要的四个类型的文件
    【微信小程序】自定义组件(一)

一个最简单的自定义组件我们就创建完成啦。

注意:

自定义组件文件夹下需要在json文件中将component设置为true,完成自定义组件声明才可使用。

{
	"component" : true
}

当然,在上面使用的快捷创建自定义组件中,开发者工具已经默认帮你把这一段写好了。

1.3 自定义组件引用

我们先来讲讲它的引用,自定义组件的引用也分为全局引用和局部引用,区别和用法如下。

  • 局部引用: 顾名思义,该组件只有在当前被引用的页面内使用 ,设置方式即在页面的json配置文件中配置usingComponents字段设置一个键值对,key为自定义组件名字,value则是组件定义的路径。需要注意的是,key的值就是该组件的标签名,如<test/>,示例如下所示。

    {
    	"usingComponents" : {
    		"test" : '/components/test/test'
    	}
    }
    

    这时候我们就可以在页面的wxml文件中使用组件啦

    因为 WXML 节点标签名只能是小写字母、中划线和下划线的组合,所以自定义组件的标签名也只能包含这些字符。

  • 全局引用: 就是该组件在所有小程序页面都可以被使用,设置方式差不多,我们直接在app.json全局配置文件中对usingComponents字段设置组件的键值对,与上述一致。

    "usingComponents" : {
    	"test" : '/components/test/test'
    }
    

    tip: 该字段与window同级

如何选择:

当一个组件在需要在多个页面中使用,我们建议使用全局引用,而对于不常用的组件,只在特定页面使用,我们就用局部引用。

1.4 组件结构

我们来简单了解一下各文件的作用

  • wxmlwxss文件负责组件的渲染层

  • 组件的js文件,调用的是Component()函数,负责组件的逻辑层,需要注意的是,组件的事件处理函数需要定义到methods节点,与vue十分相似

  • 组件的json文件,对组件的某些属性进行配置,如component,必须声明为true才可使用。注意,自定义组件也是也可以使用自定义组件的,和页面的引用一样,只需在配置文件进行配置即可。

【微信小程序】自定义组件(一)

二,自定义组件模板和样式


2.1 组件模板

组件模板中可以提供一个<slot>节点,作为插入标识位置,这时候当我们的页面引用组件的时候,可以提供一个子节点,插入到<slot>中,示例如下:

  • 组件模板
    【微信小程序】自定义组件(一)

  • 页面
    【微信小程序】自定义组件(一)
    当你有多个slot节点插入时,需要对slotname进行区分

    <slot name='a'></slot>
    <!-- 页面-->
    <test>
    	<view slot='a'></view>
    </test>
    

2.2 组件样式

注意:

  • 组件和引用组件的页面不使用id选择器、属性选择器、标签选择器,请改用class选择器
  • 组件和引用组件的页面中使用后代选择器(.a .b)在一些极端情况下会有非预期的表现,如遇,请避免使用。
  • 子元素选择器(.a>.b)只能用于view组件与其子节点之间
  • fontcolor可以从组件外继承到组件内部
  • 如果你想给组件所在节点添加默认样式,可以使用组件的:host选择器

组件样式特性:

  • 组件样式隔离,对于组件内部设定的样式,不对会组件外部的UI结构造成任何影响,而同理,组件外部的样式也不会对组件内部有影响,除了上文提到fontcolco的样式继承。

  • 需要注意的是,组件样式隔离只对class选择器有作用,对其他选择器,没有作用。

修改组件样式隔离选项:

  • 我们可以在组件的json文件中新增一个配置,即:
    styleIsolation :'isolated'
    
    当值为isolated,则为开启样式隔离
    若为apply-shared,页面的样式可以影响到组件,但是组件不可影响组件外的样式。
    若为shared,则为双向影响。

今天的小程序文章到这里就结束啦,如果觉得对您有帮助的话,可以关注牛牛接下来的文章

感谢您的支持,您的支持是我们创作的最大动力!!!
最后祝小伙伴们中秋节快乐呀!!!

债见~~文章来源地址https://www.toymoban.com/news/detail-402996.html

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

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

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

相关文章

  • 【微信小程序】记一次自定义微信小程序组件的思路

    最近来个需求,要求给小程序的 modal 增加个关闭按钮,上网一查发现原来 2018 年就有人给出解决方案了,于是总结下微信小程序自定义组件的思路:一句话, 用 wxml + css实现和原生组件类似的样式和效果,之后用 JS 实现类似原生组件的功能。 比如 modal 组件,观察可以得出就

    2024年02月11日
    浏览(33)
  • 微信小程序之自定义组件

    目录 自定义组件 — 样式  自定义组件—数据、方法和属性 数据监听器 纯数据字段 组件的生命周期 组件所在页面的生命周期 数据监听器-案例 插槽 组件通信-父子组件之间的通信 ①在项目的根目录中,鼠标右键,创建 components - test 文件夹 ②在新建的 components - test 文件夹上

    2024年02月07日
    浏览(34)
  • 微信小程序-自定义组件的使用

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

    2024年02月03日
    浏览(30)
  • 微信小程序|自定义弹窗组件

    2024年02月12日
    浏览(29)
  • 微信小程序学习笔记(四)——自定义组件

    创建组件 在根目录下创建 components 文件夹 右键点击 components 文件夹,选择 新建 Component ,就会自动生成 .wxml、.wxss、.js、.json 文件 引用组件 组件的引用方式分为“ 局部引用 ”和“ 全局引用 ”,故名思义: 局部引用 :组件只能在当前被引用的页面内使用 全局引用 :组件

    2024年02月16日
    浏览(28)
  • 微信小程序自定义日期选择器组件

    默认开始时间为当天 最大结束时间为当天 默认结束时间为开始时间的10后 wxml   js wxss

    2024年02月11日
    浏览(38)
  • 微信小程序之自定义组件开发

    从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。自

    2024年02月02日
    浏览(39)
  • 微信小程序自定义导航栏navBar组件

    参考链接,第二个链接下滑时导航栏变白色好用微信小程序自定义navigationBar顶部导航栏,兼容适配所有机型(附完整案例)_小程序自定义导航栏-CSDN博客  【微信小程序开发(二)】自定义导航栏_微信小程序分类导航栏-CSDN博客 一.创建navBar组件 1.components下创建navBar文件夹

    2024年04月25日
    浏览(45)
  • 微信小程序- component 自定义组件及引用

    一、自定义组件 1、根目录下创建一个 Components 文件夹 2、在 Components 文件夹中创建一个文件夹(文件夹名称为组件名称),例如组件名称为Myheader  3、点击Myheader 文件夹,右键选择 新建Component, 并命名为Myheader   4、在 Myheader.wxml 和 Myheader.scss 中写对应的内容 二、引用自定

    2024年02月04日
    浏览(30)
  • 微信小程序子页面自定义tabbar组件

    有时候微信小程序会遇到代码合并,就比如把B小程序代码迁移到A小程序,要使得B作为A小程序的一个子页面子功能。因为本身小程序都有tabbar,原来B也有,这时候就要给B子功能自定义一个tabbar底部导航栏。(注意,这个不是微信小程序自定义tabBar,不需要app.json中设置一个

    2024年02月08日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包