首页IT科技微信小程序自定义(【微信小程序】自定义组件(一))

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

时间2025-05-02 09:40:40分类IT科技浏览3843
导读:🎁写在前面:...

🎁写在前面:

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

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

文章目录

一         ,创建和引用 1.1 介绍 1.2 创建自定义组件 1.3 自定义组件引用 1.4 组件结构 二                 ,自定义组件模板和样式 2.1 组件模板 2.2 组件样式

一         ,创建和引用

1.1 介绍

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

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

1.2 创建自定义组件

自定义组件的创建   ,类似于页面的创建           ,也是由json            、wxml                 、wxss     、js四个类型的文件组成

创建有以下两个步骤:

在项目的根目录下                 ,创建一个components文件夹      ,用来存放我们的自定义组件代码

伙伴们是不是觉得跟Vue的组件定义有点像         ,不过注意的是                 ,vue定义组件只需要vue一个文件即可         ,而小程序的自定义组件一般来说可不止      。 在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 组件结构

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

wxml和wxss文件负责组件的渲染层

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

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

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

2.1 组件模板

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

组件模板

页面

当你有多个slot节点插入时   ,需要对slot用name进行区分 <slot name=a></slot> <!-- 页面--> <test> <view slot=a></view> </test>

2.2 组件样式

注意:

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

组件样式特性:

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

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

修改组件样式隔离选项:

我们可以在组件的json文件中新增一个配置,即: styleIsolation :isolated

当值为isolated              ,则为开启样式隔离

若为apply-shared                  ,页面的样式可以影响到组件   ,但是组件不可影响组件外的样式         。

若为shared           ,则为双向影响      。

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

感谢您的支持         ,您的支持是我们创作的最大动力!!!

最后祝小伙伴们中秋节快乐呀!!!

债见~~

声明:本站所有文章                 ,如无特殊说明或标注         ,均为本站原创发布                 。任何个人或组织      ,在未征得本站同意时                 ,禁止复制           、盗用   、采集                  、发布本站内容到任何网站              、书籍等各类媒体平台            。如若本站内容侵犯了原著者的合法权益            ,可联系我们进行处理   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
php写一个简单的单例模式怎么写(浅谈PHP设计模式的单例模式) 还有windows11吗(Win11 出世 UWP 却惨遭“弃用”,Win 软件还会翻新吗)